我该如何为遗传算法生成随机数?

bj7*_*bj7 4 c++ random number-theory genetic-algorithm

我正在写一个遗传算法来解决Master Mind游戏.我已经对最佳方法进行了大量研究,拥有多样化的人口非常重要.我正在尝试确定如何在C++中获得非常好的随机数.我已经srand(time(NULL))在我的程序开始时设置种子然后我只是使用了rand().我想知道的是这是多么随机?它不错吗?是否还有其他更好的随机数库?

我知道数论和随机性是一个非常复杂的主题; 在编写自己的版本时,你有什么指针rand()吗?

Nic*_*son 5

对于加密,您需要在随机数上具有非常强大的属性.许多文献都集中在这些类型的要求上.一个典型的解决方案是使用环境噪声(硬盘延迟,网络数据包,鼠标移动,RDRAND,HAVEGE ......)播种SHA-256的迭代应用程序.

对于蒙特卡罗模拟或AI应用,随机性要求确实低得多.事实上,非常简单的发电机就足够了.最基本的是臭名昭着的线性同余发生器,现在被认为有点老式,因为输出模式有时会产生明显的和不需要的采样效果(特别是,在70年代和80年代进行的一些实验研究很可能因为这个).如今,Mersenne Twister更受欢迎,并且足以用于电脑游戏.它可以在C++标准库中找到:请参阅std :: mt19937.