我有以下方法生成一个随机数:
int random_number() //Random number generator { int x = rand() % 1000000 + 1; //Generate an integer between 1 and 1000000 return x; }
解决方法
您需要
seed的随机数生成器,如:
srand ( time(NULL) ); int x = rand() % 1000000 + 1;
种子伪随机数生成器基本上决定了它将遍历的随机数集.使用时间是实现充分随机结果的标准方法.
编辑:
为了澄清,你应该只种一次,并获得许多随机数字,像这样:
srand ( time(NULL) ); loop { int x = rand() % 1000000 + 1; }
而不是像:
loop { //Particularly bad if this line is hit multiple times in one second srand ( time(NULL) ); int x = rand() % 1000000 + 1; }