以纯粹的方式使用c++随机数生成器
Using c++ random number generators in a pure fashion
我有一个类似蒙特卡罗的系统,其中我有一些随机演变的状态,使用内部随机数生成器。我还在程序的其他地方存储了这个状态的const
副本,因为我想知道它是如何进化的,如果它真的进化的话。这需要随机数生成器的两件事:
1)克隆生成器而不修改它的能力,以存储在复制版本的状态。
2)从生成器的const
副本中确定下一个随机数的能力。
仅使用标准库可以吗?如果没有,你能推荐一个第三方库吗?
标准c++ 11随机生成器是可以复制的普通对象,并且复制将产生相同的序列。它们还可以使用operator<<
和operator>>
将它们的内部状态序列化和反序列化成io流。
生成随机数的operator()
不是const
函数,因为它改变了生成器的内部状态。因此,您不能在生成器的const
副本上直接调用它。但是,您可以创建const
的临时可变副本,从中生成一个值,然后销毁它。
如果你的编译器不支持c++ 11,你可以使用Boost。随机库,它是标准库的基础。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 制作具有平均值的随机数生成器
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 尝试在 c++ 中创建随机数生成器并收到错误
- 存储并重新加载随机数生成器状态
- 作为随机数生成器的争用条件
- 播种随机数生成器以使用分叉的好方法是什么?
- 随机数生成器的性能因平台而异
- 随机数生成器的种子和状态有什么区别?
- RcppShark 随机森林示例引发有关随机数生成器的异常
- C++多个实例的随机数生成器组种子中增强
- C++随机数生成器仅生成 0 - C++ 11
- GSL+OMP:C++中的线程安全随机数生成器
- 贪吃蛇游戏 - 食物瓷砖的随机数生成器
- 随机数生成器在 C++ 用于 skipList.
- RSA 加密和解密期间的随机数生成器要求
- 如何使用 cpp 设置随机数生成器的语法?
- 产生相同结果的随机数生成器
- C++随机数生成器通常在 Visual Studio 中运行程序时在 2 次后停止生成数字
- 如何理解C++11随机数生成器