I suspect the answer is '100', but I was hoping someone could give a little more insight at a basic level...

今天我翻阅了BCL的源代码,看看我以前使用过的一些类是如何实际实现的.我以前从未想过如何生成(伪)随机数,所以我决定看看它是如何实现的.

完整来源:http://referencesource.microsoft.com/#mscorlib/system/random.cs#29

private const int MSEED = 161803398; 

每次对Random()类进行种子设定时,都会使用此MSEED值.

不管怎么说,我看到了这个"神奇的数字"--161803398--我完全不知道为什么会 Select 这个数字.它既不是质数,也不是2的幂,也不是一个看起来更重要的数字的"一半".我用二进制和祸不单行来看它,嗯,对我来说它看起来就像一个数字.

我试着在谷歌上搜索这个号码,但什么也没找到.

推荐答案

不,但它是基于Phi("黄金比例").

161803398 = 1.61803398 * 10^8 ≈ φ * 10^8

More about the golden ratio here

And a really good read for the casual mathematician here

我找到了a research paper on random number generators个和这个说法一致的人.(见第53页.)

.net相关问答推荐

如何将 signalR 添加到不同项目中的后台服务?

使用 DataDog 收集 OpenTelemetry 跟踪

使用 PowerShell 从文件夹中获取文件名的最快\最好的方法是什么?

无法加载文件或程序集 不支持操作. (来自 HRESULT 的异常:0x80131515)

单线程单元 - 无法实例化 ActiveX 控件

ICommand MVVM 实现

静态代码块

如何从字符串中删除所有字母字符?

隐式与显式接口实现

找不到 Assert.Fail 和 Assert.Pass 或等效项

如何授予所有用户对我的应用程序创建的文件的完全权限?

从 List 到数组 T[] 的转换

返回 IList 是否比返回 T[] 或 List 更糟糕?

string.Empty vs null.你用哪一个?

List 是否保证项目将按照添加的顺序返回?

在 .NET 中,null 的哈希码是否应该始终为零

ADO.NET Entity Framework:更新向导不会添加表

Linq Query 不断抛出无法创建 System.Object 类型的常量值......,为什么?

为什么 IList 不支持 AddRange

SqlParameter 已被另一个 SqlParameterCollection 包含 - using() {} 作弊吗?