Considere el siguiente código lua fragmento:¿Por qué el primer número aleatorio siempre es el mismo en algunas plataformas en 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
en una máquina Linux, el resultado es, como se esperaba, números aleatorios. Pero parece que, al menos en Mac OS X, el primer número aleatorio después de cambiar la semilla siempre es el mismo.
Supongo que esto está relacionado con el hecho de que Lua confía en la función C rand() para generar números aleatorios, pero ¿alguien tiene una explicación?
EDIT: aquí es un extracto de la salida del código de seguridad en una máquina Linux (es decir, la salida es como se esperaba):
$ lua test.lua
Seeding with 1232472273
69
30
83
59
84
Seeding with 1232472274
5
21
63
91
27
[...]
En una máquina OS X, el primer número después de "siembra con ... "siempre fue 66.
¿Utiliza las mismas versiones lua en ambas máquinas? Tal vez un error en el Mac OS X uno. –
Sí, uso la última versión de lua. – Wookai