首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

调用rand()函数的有关问题:设置srand((unsigned int)time(0)),为什么还是全是一样的数

2012-02-01 
调用rand()函数的问题:设置srand((unsigned int)time(0)),为什么还是全是一样的数?RandomRange(intM,intN)

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

热点排行