我需要向分布式应用程序网络发送相同的随机数序列。
由于这样的序列可能很长,我正在考虑只发送一个(随机生成的)集中种子初始化编号和所需序列的长度。
鉴于接收方的每个组件都将使用相同的 .NET 版本,在我的所有节点上生成相同的随机数据是否是一个可行的解决方案?
我需要向分布式应用程序网络发送相同的随机数序列。
由于这样的序列可能很长,我正在考虑只发送一个(随机生成的)集中种子初始化编号和所需序列的长度。
鉴于接收方的每个组件都将使用相同的 .NET 版本,在我的所有节点上生成相同的随机数据是否是一个可行的解决方案?
假设您在所有环境中使用相同版本的 .NET,您应该能够为 Random(int seed) 分发种子并重新创建相同的序列。
调用者注意事项Random 类中随机数生成器的实现不能保证在 .NET Framework 的主要版本中保持相同。因此,您的应用程序代码不应假定相同的种子会在不同版本的 .NET Framework 中产生相同的伪随机序列。
如果您可以看到框架版本会更改的情况,或者您可能需要在开始使用新版本后重新创建旧序列,那么您将需要创建自己的随机实现。
请参阅此问题的答案以获取指针:Crossplatform random number generator
您可以使用Random
带有种子的类或使用面向服务的体系结构。
Random
当用种子初始化时将产生相同的序列。