最近的回答提到使用Fortuna或Mersenne Twister随机数生成器(RNG)进行蒙特卡洛模拟。我之前没有听说过Fortuna,所以我查了一下-看起来它主要是供加密使用的。
我目前在生产代码中使用Mersenne Twister播种K-Means算法。
哪种(Fortuna或Mersenne Twister)被认为是“算法播种”应用程序的最佳选择(例如Monte Carlo和K-Means播种)?还是“扔掉”-即使用最方便。
在我所坐的地方,“最佳”应该提供最高质量的随机数,可以快速运行,并且(可能)占用的内存少。其中,质量对于我们大多数人来说可能是最重要的。
RAND_MAX=32768
可能的值。我目前正在将MT用于Monte Carlo光线追踪模拟。但是,我不认为MT是我的探查器中的性能瓶颈,可能是因为我在预处理过程中 “随机”生成了诸如光线方向之类的东西。例如,我可能在启动时生成100,000个射线的数组,将它们存储在一个数组中,然后在运行时随机选择数组的开始位置(运行约10,000个射线)。这具有相对较高的存储开销,以换取良好的随机数分布。