Я хорошо осознаю тот факт, что использование одного и того же начального числа дает одинаковую последовательность псевдослучайных чисел. Мой вопрос о том, что при разных начальных числах первое сгенерированное число кажется одинаковым на некоторых платформах.
отрим следующий фрагмент кода 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.