首页 新闻 搜索 专区 学院

srand 与 rand

0
[已解决问题] 解决于 2017-04-09 17:40

srand函数与rand函数到底是怎么工作的;

我单独用rand函数时:比如

for(int i=0;i<=5;i++)
{
cout<<rand()%100<<endl;
}这个函数可以生成6个不同的数;但是当我关掉exe端口后,再次执行文件,生成的6个数和第一次生成的6个数是一样的,这是怎么回事?

 

另外:对于

for(int i=0;i<=5;i++)
{ srand(10);
cout<<rand()%100<<endl;
}函数,却生成6个一样的数,,,很懵?求解释

极地啸天的主页 极地啸天 | 菜鸟二级 | 园豆:206
提问于:2017-04-02 16:02
< >
分享
最佳答案
0

1.srand()函数需要提供一个种子值,如果这个值不变,那么每次调用rand函数生成的伪随机数序列都是一样的。rand()函数只有配合srand(seed)函数,且seed要随机(比如可以用系统时间time(NULL)),这样才能真正产生随机数。

2.不要把srand(10)写在循环内。

奖励园豆:5
suitcase | 菜鸟二级 |园豆:208 | 2017-04-04 19:49

谢谢你,加上之前的百度,现在你的解释让我可以理解了,尤其是你的最后面两句话,谢谢

极地啸天 | 园豆:206 (菜鸟二级) | 2017-04-04 23:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册