我知道还有其他类似于这个问题的问题,但是下面的问题涉及在C中用于蒙特卡洛的任意精度随机数生成模拟。C:中的任意精度随机数用于无大气噪声的蒙特卡罗模拟
如何在不依赖可能产生瓶颈的磁盘I/O或网络访问的情况下,在大气噪声不总是可用的情况下,用C语言生成高质量的任意精度随机数?
libgmp能够生成随机数字,但是,like other implementations of pseudo-random number generators,它requires a seed。正如手册中提到的,“系统时间很容易猜测,所以如果需要不可预测性,那么它肯定不是种子价值的唯一来源。”
是否有便携/移植库用于生成随机数或随机数种子? libgmp还提到:“在某些系统上,有一个特殊的设备/ dev/random,它提供了更适合用作种子的随机数据。”但是,/dev/random
和/dev/urandom
只能使用可用于* nix系统。
这是一个棘手的问题(也是一个积极的研究领域)。 +1 Monte Carlo模拟问题尤其突出,因为即使数据的高周期性也会限制结果的变化。 – WhirlWind 2010-05-23 22:05:55