c – rand()总是在应用程序重新启动时返回相同的顺序

前端之家收集整理的这篇文章主要介绍了c – rand()总是在应用程序重新启动时返回相同的顺序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下方法生成一个随机数:
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;
}

猜你在找的C&C++相关文章