我正在用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/