其他分享
首页 > 其他分享> > rand与srand:随机数的生成

rand与srand:随机数的生成

作者:互联网

当应用需求中有随机要求时,使用rand
应用场景:;洗牌、抽签、摇号、彩票自动下注。。。

for(int i=0;i<10;i++)
{
    printf("%d\n",rand())
}

rand()函数的缺陷:普通PC产生的是伪随机数。因为在物理上PC难以制造随机现象。
每次程序运行时,这个随机数的序列都是一样的。
此随机是指:如果程序持续运行,则每次rand()结果不同。
解决办法:设置一个种子(seed)
随机数是根据一定的规则生成的,传入一个参数,使其产生不同的结果。(如果不调用srand,相当于默认的执行了srand(1))
srand(11)和srand(12)之后产生的随机数序列

srand(11);//确保每次程序启动后,传入不同的seed
for(int i=0;i<10;i++)
{
    printf("%d\n",rand());
}

每次程序启动时把当前时间传给srand

srand(time(NULL));

对rand()结果取模
通常地,要对rand()返回的结果取模,使其坐落在一个区间内
比如:要在100和160之间随机去一个数
int r=rand()%60+100;
其中,60是区间长度,范围在100~160

标签:rand,int,srand,随机,随机数,100
来源: https://blog.51cto.com/u_8697137/3044811