Betrachten Sie den folgenden lua-Code-Snippet:Warum ist die erste Zufallszahl auf einigen Plattformen in lua immer gleich?
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
Auf einem Linux-Rechner, das Ergebnis ist, wie erwartet, Zufallszahlen. Aber zumindest unter Mac OS X scheint die erste Zufallszahl nach dem Ändern des Samens immer gleich zu sein!
Ich denke, das hängt damit zusammen, dass Lua auf die C rand() - Funktion zum Generieren von Zufallszahlen angewiesen ist, aber hat jemand eine Erklärung?
EDIT: Hier ist ein Extrakt aus der Ausgabe des oben genannten Codes auf einem Linux-Maschine (dh der Ausgang wird wie erwartet):
$ lua test.lua
Seeding with 1232472273
69
30
83
59
84
Seeding with 1232472274
5
21
63
91
27
[...]
Auf einer OS X-Maschine, die erste Zahl nach „Animpfen mit ... "war immer 66.
Verwenden Sie die gleichen Lua-Versionen auf beiden Maschinen? Vielleicht ein Bug im Mac OS X. –
Ja, ich benutze die neueste lua-Version. – Wookai