我怀疑答案是“ 因为数学 ”,但是我希望有人可以在基本层面上提供更多的见解…
今天,我在研究BCL源代码,看看我以前使用的某些类是如何实现的。之前我从未考虑过如何生成(伪)随机数,所以我决定看看它是如何完成的。
此处的完整源代码:http : //referencesource.microsoft.com/#mscorlib/system/random.cs#29
private const int MSEED = 161803398;
每次植入Random()类时都使用此MSEED值。
无论如何,我看到了这个“魔术数字”-161803398-我对为什么选择该数字没有最模糊的主意。它不是素数或2的幂,不是看似有意义的数字的“半途而废”。我用二进制和十六进制格式查看了它,对我来说,它就像是一个数字。
我尝试在Google中搜索该号码,但未找到任何内容。
不,但是它基于Phi(“黄金比例”)。
161803398 = 1.61803398 * 10^8 ≈ φ * 10^8
更多关于黄金分割率的信息。
而一个 真正的 好读的休闲数学家在这里。
我找到了一份关于随机数生成器的研究论文,该论文与这一主张相吻合。(请参阅第53页。)