我知道还有其他与此类似的问题,但是以下问题与 C 中用于蒙特卡洛模拟的任意精度随机数生成有关。
当大气噪声并不总是可用时,我们如何在 C 中生成高质量的任意精度随机数,而不依赖会产生瓶颈的磁盘 i/o 或网络访问?
libgmp 能够生成随机数,但是,与伪随机数生成器的其他实现一样,它需要一个种子。正如手册中提到的,“系统时间很容易猜测,所以如果需要不可预测性,那么它绝对不应该是种子值的唯一来源。”
是否有用于生成随机数或随机数种子的便携式/移植库?libgmp 还提到“在某些系统上,有一个特殊的设备 /dev/random 提供更适合用作种子的随机数据。” 但是,/dev/random
只能/dev/urandom
在*nix 系统上使用。