c++ - 在单个程序中初始化多个 rng

标签 c++ random

我想使用 <random> 在我的 C++ 应用程序中使用多个 RNG .播种它们的最佳方法是什么?我担心当使用来自单个 RNG 的随机数为每个 RNG 播种时,来自不同 RNG 的随机数会过于相关。

最佳答案

如果这是您的顾虑,我建议使用 random_device 为所有 RNG 设置种子。 random_device 的输出尽可能接近真正的随机性。

(好吧,我想这是值得商榷的,但它是标准库将以跨平台的方式为您提供的最佳选择。一个可能更可靠的随机替代方案是从 www.random.org 或其他网站中提取种子。)

http://www.cplusplus.com/reference/random/random_device/

这仅适用于 C++11,如果您使用的是较早的标准,则可以改用 boost::random_device

关于c++ - 在单个程序中初始化多个 rng,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335937/

相关文章:

c++ - 使用 C++ 读取整个文件,忽略误报的 EOF

c# - 高级伪随机位生成

c++ - 如何生成 8 位(伪)随机数以便排除某些已知数字?

python - 分类模型中的 random_state 参数

c# - 通过随机数生成确保均匀(ish)分布

c++ - 如何知道变量是在寄存器中还是在堆栈中?

c++ - Objective C(++) Insanity——对单个浮点变量的简单赋值导致另一个变量中的 {{{CRAZY}}} 值

c++ - 在 openmp 中使用不同线程组装 vector 时缩放比例不佳

algorithm - 什么RNG(随机数生成器)算法适合扑克牌洗牌?

c++ - 如何设置 VS2008 以进行高效的 C++ 开发