en faisant quelques exercices dans Lua, je suis tombé sur un comportement (étrange) à mon sens que je ne peux pas expliquer. Le code suivant est censé calculer le nombre de termes distincts de la forme a^b pour 2 < = a, b = 100. < Ce code fournit la bonne réponse, 9183:Comportement inexpliqué lors du calcul de grandes puissances dans Lua
local terms = {}
local cnt = 0
for a = 2, 100 do
for b = 2, 100 do
term = math.pow(a, b)
if not terms[term] then
terms[term] = string.format("%d exp %d", a, b)
cnt = cnt + 1
else
print(term .. " already in set! (" .. terms[term] .. ")")
end
end
end
print(cnt)
Cependant, ce code produit une réponse différente (seule la 'impression()' dans la branche else est commenté):
local terms = {}
local cnt = 0
for a = 2, 100 do
for b = 2, 100 do
term = math.pow(a, b)
if not terms[term] then
terms[term] = string.format("%d exp %d", a, b)
cnt = cnt + 1
else
--print(term .. " already in set! (" .. terms[term] .. ")")
end
end
end
print(cnt)
Il. cela me donne 9254 comme réponse. Il n'y a aucun calcul effectué dans cette ligne commentée, juste sortie à l'écran. Pourtant, il semble influencer le résultat du calcul. Ai-je découvert un système macroscopique qui sous-tend les lois de la mécanique quantique? Non, mais sérieusement, il me manque quelque chose ici, et je serais très reconnaissant si quelqu'un avec plus d'expérience et de connaissances pouvait me diriger dans la bonne direction.
Merci d'avance!
Peut-être devriez-vous demander sur une liste ou un forum Lua ... –
Oui, je suppose que vous avez raison . Je vais attendre un jour ou deux. Si après cela personne ne donne une réponse plus précise, je choisirai votre réponse, car elle m'a apporté un aperçu et un excellent site web que je peux lire et ensuite diffuser. –
Quelle version de Lua? Quel compilateur C? Quel système d'exploitation? Comment Lua a-t-il été configuré et compilé? –