Por que o primeiro número aleatório é sempre o mesmo em algumas plataformas na lua?
Considere o seguinte snippet de código 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
Em uma máquina Linux, o resultado é, como esperado, números aleatórios. Mas parece que pelo menos no Mac OS X, o primeiro número aleatório após alterar a semente é sempre o mesmo!
Eu acho que isso está relacionado ao fato de Lua confiar na função C rand () para gerar números aleatórios, mas alguém tem uma explicação?
EDIT: aqui está um extrato da saída do código acima em uma máquina Linux (ou seja, a saída é como o esperado):
$ lua test.lua
Seeding with 1232472273
69
30
83
59
84
Seeding with 1232472274
5
21
63
91
27
[...]
Em uma máquina OS X, o primeiro número após "Semear com ..." era sempre 66.