确定跨系统的随机数生成

时间:2013-06-26 11:56:59

标签: c# random random-seed

我需要向分布式应用程序网络发送相同的随机数序列。

由于这样的序列可能很长,我在考虑只发送一个(随机生成的)集中种子初始化数和所需序列的长度。

鉴于接收手上的每个组件都将使用相同的.NET版本,那么在我的所有节点上生成相同的随机数据是否可行?

2 个答案:

答案 0 :(得分:9)

您应该能够为Random(int种子)分发种子并重新创建相同的序列,假设您在所有环境中使用相同版本的.NET。

Remarks on System.Random @ MSDN

  

来电者须知中随机数发生器的实现   不保证Random类在主要版本中保持不变   .NET Framework的版本。因此,您的应用程序代码   不应该假设相同的种子会产生相同的结果   不同版本的.NET Framework中的伪随机序列。

如果您可以看到框架版本将发生变化的情况,或者您可能需要在开始使用新版本后重新创建旧序列,则需要创建自己的随机实现。

请参阅此问题的答案以获取指示:Crossplatform random number generator

答案 1 :(得分:1)

您可以将Random类与种子一起使用,也可以使用面向服务的体系结构。

当用种子初始化时,

Random将产生相同的序列。