RNG 是否有可能被种子扭曲?

Is it possible for a RNG skewed by seed?

正如问题所问,用于生成随机数的种子是否可能导致编程错误的伪随机数生成器发生偏差?如果是,导致这种情况发生的常见错误是什么?

举几个例子:

另外,即使这不是一个真正的错误,很多很多生成器都会用类似

的东西来初始化自己

if seed == 0: # comment explaining that zero is bad seed = nonzero

// Due to (reasons) we only really allow seeds in [0,M) seed = seed % M

意味着至少有两个种子会给出相同的结果。 示例:xorgens(零=>非零),java 的随机(种子是 64 位,内部状态是 48 位...),go 的 math/rand(它做这两件事,看第一行https://golang.org/src/math/rand/rng.go)

处的 Seed() 方法