Рассмотрим следующий фрагмент кода 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
На компьютере с Linux результат, как и ожидалось, является случайным числом. Но, похоже, по крайней мере в Mac OS X первое случайное число после смены начального числа всегда одинаково!
Полагаю, это связано с тем, что Lua использует функцию C rand () для генерации случайных чисел, но есть ли у кого-нибудь объяснение?
РЕДАКТИРОВАТЬ: вот выдержка из вышеприведенного кода на Linux-машине (т.е. вывод такой, как ожидалось):
$ lua test.lua
Seeding with 1232472273
69
30
83
59
84
Seeding with 1232472274
5
21
63
91
27
[...]
На компьютере с OS X первое число после «Seeding with ...» всегда было 66.