Tenir compte de l'extrait de code Lua suivant:Pourquoi le premier nombre aléatoire est-il toujours le même sur certaines plateformes de Lua?
local time = os.time()
for _= 1, 10 do
time = time + 1
print('Seeding with ' .. time)
math.randomseed(time)
for i = 1, 5 do
print('\t' .. math.random(100))
end
end
Sur une machine Linux, le résultat est, comme prévu, des nombres aléatoires. Mais il semble qu'au moins sur Mac OS X, le premier nombre aléatoire après avoir changé la graine soit toujours le même!
Je suppose que cela est lié au fait que Lua s'appuie sur la fonction C rand() pour générer des nombres aléatoires, mais quelqu'un a-t-il une explication?
EDIT: voici un extrait de la sortie du code ci-dessus sur une machine linux (la sortie est comme prévu):
$ lua test.lua
Seeding with 1232472273
69
30
83
59
84
Seeding with 1232472274
5
21
63
91
27
[...]
Sur une machine OS X, le premier numéro après « ensemençant avec ... "était toujours 66.
Utilisez-vous les mêmes versions lua sur les deux machines? Peut-être un bug dans celui de Mac OS X. –
Oui, j'utilise la dernière version de lua. – Wookai