读书人

调用rand()函数的有关问题:设置srand(

发布时间: 2012-02-01 16:58:19 作者: rapoo

调用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通常调用一次
或者确保每次种子不一样,需要考虑到一秒钟计算机能做很多事情

读书人网 >VC/MFC

热点推荐