调用rand()函数的问题:设置srand((unsigned int)time(0)),为什么还是全是一样的数?
RandomRange(int M,int N)//返回一范围内的随机数字
{
int rand_num = 0;
srand((unsigned int)time(0));
rand_num = M + rand()%(N-M+1);
return rand_num;
}
cout < <RandomRange(1,4) < <endl;
cout < <RandomRange(1,4) < <endl;
cout < <RandomRange(1,4) < <endl;
为什么输出的总是相同的?比如全是4,或全是1.谢谢
[解决办法]
srand((unsigned int)time(0));放到外面看看
[解决办法]
同样的种子将产生同样的随机数序列
你在一秒种内输出了三个同样种子的第一个随机数,不一样是不可能的
srand通常调用一次
或者确保每次种子不一样,需要考虑到一秒钟计算机能做很多事情