我正在用C++进行蒙特卡洛模拟,并且正在使用Boost处理随机数。我也使用了GSL。但是事实证明,随机数生成是我最大的运行时效率低下之一,因此我刚开始使用rand()中的旧cstdlib

我在模拟中冒很差的随机数属性的风险有多严重?我使用大约10 ^ 6或10 ^ 7个随机数样本。

最佳答案

有两个问题:(1)因为只能保证RAND_MAX至少为32767,所以可能没有很多可能的值(对于某些应用程序不一定很坏),以及(2)较差的实现。

如果您需要所谓的安全随机数生成器,则需要寻找其他地方。但是对于许多应用程序来说,rand()就足够了。

解决您的问题的博客文章是http://eternallyconfuzzled.com/arts/jsw_art_rand.aspx

关于c++ - stdlib.h的兰特有多坏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6862844/

10-09 13:36