Я хорошо осознаю тот факт, что использование одного и того же начального числа дает одинаковую последовательность псевдослучайных чисел. Мой вопрос о том, что при разных начальных числах первое сгенерированное число кажется одинаковым на некоторых платформах.

отрим следующий фрагмент кода 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.

Ответы на вопрос(5)

Ваш ответ на вопрос