Erlang's rand:seed/2 использует 3 целых числа для заполнения RNG.
rand:seed/2
В то время как реализации RNG обычно требуют 1 целое число для начального числа, почему Erlang использует 3 специально?
Эрланг использует вариант алгоритма Вихмана-Хилла в качестве своего PRNG.Этот алгоритм датируется 1982 , когда были распространены 16-битные процессоры.Чтобы достичь достаточно длинного цикла (для времени), он объединяет результаты трех различных линейных конгруэнтных генераторов (LCG), каждый из которых имел длину цикла <2 <sup>15 .Объединенный результат имеет объединенную длину цикла
. Каждый из LCG имеет свое собственное целочисленное состояние, поэтому требуются три отдельных начальных значения.