【发布时间】:2015-08-03 11:18:45
【问题描述】:
我正在编写一个遗传算法来解决 Master Mind 游戏。我对最佳方法进行了大量研究,拥有多样化的人口非常重要。我正在尝试确定如何在 C++ 中获得非常好的随机数。我在程序开始时完成了srand(time(NULL)) 来设置种子,然后我只是使用了rand()。我想知道的是,这真的是随机的吗?是不是很不错?还有其他更好的随机数库吗?
我知道数论和随机性是一个非常复杂的主题;在编写自己的rand() 版本时,您有什么建议吗?
【问题讨论】:
-
如果你有 C++11,请使用this。
-
对于遗传算法,你不需要非常好的随机数,
std::mt19937就可以了。 -
查看其中一项是否符合您的需求:en.cppreference.com/w/cpp/numeric/random
-
如果你有 C++11,你应该使用
std::mt19937并且可能使用std::uniform_xxx_distribution。如果你没有 C++11,你应该得到它。 -
哦,哇,我不知道所有这些都存在于 C++11 中!我得检查一下,但我想我有。那些将是完美的!
标签: c++ random genetic-algorithm number-theory