Is it possible for a RNG skewed by seed?
正如问题所问,一个编程错误的伪RNG是否可能被用来生成随机数的种子所扭曲?如果是,导致这种情况发生的常见错误是什么?
几个例子:
- https://banu.com/blog/42/openbsd-bug-in-the-random-function/
- Mersenne Twister使用的旧播种程序(http://www.math.sci.hiroshima-u.ac.jp/~m-mat/mt2002/emt19937ar.html链接到一个明确的解释)
- 旧的超级复制器(找不到链接ATM)的周期应该是2^64,但有些种子的周期是2^5x。
而且,即使它不是真正的bug,许多生成器也会用类似的东西初始化自己。
if seed == 0:
# comment explaining that zero is bad
seed = nonzero
或
江户十一〔一〕号
这意味着至少会有两个种子产生相同的结果。例子:XOGNEN(0==非零),Java的随机(种子是64位,内部状态是48位…),GO的数学/RAND(它同时做了两件事,在HTTPS://Gangang.Org/Src/Mthth/RAND/RNG.GO)中看到了种子()方法的第一行。