当应用需求中有随机要求时,使用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