跨系统的确定性随机数生成

本文关键字:随机数 确定性 系统 | 更新日期: 2023-09-27 18:19:54

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

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

假设接收端的每个组件都将使用相同的.NET版本,那么在我的所有节点上生成相同的随机数据是否是一个可行的解决方案?

跨系统的确定性随机数生成

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

关于System.Random@MSDN 的备注

调用方注意事项中随机数生成器的实现随机类不能保证在各专业保持不变.NET Framework的版本。因此,您的应用程序代码不应该假设相同的种子会产生相同的结果.NET Framework的不同版本中的伪随机序列。

如果您看到框架版本将发生更改,或者在开始使用新版本后可能需要重新创建旧序列,那么您将希望创建自己的随机实现。

有关指针,请参阅此问题的答案:跨平台随机数生成器

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

CCD_ 2在用种子初始化时将产生相同的序列。