【发布时间】:2023-12-21 21:31:01
【问题描述】:
我知道还有其他类似的问题,但是以下问题与 C 中用于蒙特卡罗模拟的任意精度随机数生成有关。
当大气噪声并不总是可用时,我们如何在 C 中生成高质量的任意精度随机数,而不依赖会造成瓶颈的磁盘 i/o 或网络访问?
libgmp 能够生成随机数,但是,like other implementations of pseudo-random number generators,它是requires a seed。正如手册中提到的,“系统时间很容易猜测,所以如果需要不可预测性,那么它绝对不应该是种子值的唯一来源。”
是否有用于生成随机数或随机数种子的可移植/移植库? libgmp 还提到“在某些系统上,有一个特殊的设备 /dev/random 提供更适合用作种子的随机数据。”但是,/dev/random 和 /dev/urandom只能在 *nix 系统上使用。
【问题讨论】:
-
这是一个棘手的问题(也是一个积极研究的领域)。 +1 蒙特卡洛模拟尤其成问题,因为即使数据的高周期性也会限制结果的变化。
标签: c random simulation gmp