为什么Erlang的随机数生成种子需要3个整数?

时间:2018-05-22 03:18:43

标签: random erlang

Erlang的rand:seed/2使用3个整数来为RNG播种。

虽然RNG实现通常需要1个整数用于种子,但为什么Erlang特别使用3?

1 个答案:

答案 0 :(得分:1)

Erlang uses a variant of the Wichmann-Hill algorithm作为其PRNG。这个algorithm dates to 1982,当16位处理器很常见时。为了实现相当长的周期(当时),它汇集了三个不同的线性同余生成器(LCG)的结果,每个生成器的周期长度<1。 2 15 。合并的结果具有

的组合循环长度

每个LCG都有自己的整数状态,因此需要三个单独的种子值。