首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带种子的随机数生成

带种子的随机数生成
EN

Stack Overflow用户
提问于 2013-10-24 16:28:50
回答 2查看 286关注 0票数 2

如果我使用.Net(4.5)中的随机类,并且总是使用相同的种子来生成1000个数字,那么在另一台机器上(有不同的芯片组/核数等),我的1000个数字可能会有所不同吗?我不知道这是怎么回事,但我的一位同事告诉我,我们需要意识到他们是有可能的。我所做的测试似乎总是一致的。只是担心我可能会得到不同的数字。我可以理解,如果我试图平分这代人或什么的话,那是不同的。

代码语言:javascript
复制
int seed = 99;
var random = new Random(seed);

for (int i = 0; i < 1000; i++)
   random.Next();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-24 16:32:00

在不同的PC机之间运行相同的框架听起来不太可能(意思是:您可以合理地预期相同的序列)--但是MS保留更改实现的权利。MSDN声明:

随机类中随机数生成器的实现不能保证在.NET框架的主要版本中保持不变。因此,应用程序代码不应假设相同的种子将导致不同版本的.NET框架中相同的伪随机序列。

因此:如果您需要更强的保证:使用您自己的PRNG实现。有很多这样的选择。

票数 8
EN

Stack Overflow用户

发布于 2013-10-24 16:32:49

根据这个链接,在所有情况下,.Net 4.5都会得到相同的序列,不确定这是否适用于不同版本的.Net框架(与前面的答案一致)。

MSDN

“向不同的随机对象提供相同的种子值会使每个实例产生相同的随机数序列。”

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19571521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档