如果我的应用程序针对.NET Framework 3.5,那么每个CPU是否会根据相同的种子返回相同的随机序列? 我正在检查是否与我获得相同的结果。 我也希望我分发给的每个人都能获得相同的结果。谢谢!
Random a = new Random(44448);
int i1 = a.Next(65, 90);
MessageBox.Show(i1.ToString());
如果我的应用程序针对.NET Framework 3.5,那么每个CPU是否会根据相同的种子返回相同的随机序列? 我正在检查是否与我获得相同的结果。 我也希望我分发给的每个人都能获得相同的结果。谢谢!
Random a = new Random(44448);
int i1 = a.Next(65, 90);
MessageBox.Show(i1.ToString());
针对特定的框架版本,您的程序每次运行应该给出相同的结果,因为有固定的种子。
但是在不同版本的.NET框架上可能会给出不同的结果。
例如,在.NET 4.0上,我得到了77
。但将代码放入ideone(使用Mono)中,则会得到67
。
造成这种差异的原因是Random
使用的精确算法不是规范的一部分。文档中有关于算法的信息: