c语⾔中rand函数的使⽤
rand函数是包含在stdlib.h头⽂件⾥的⼀个产⽣随机数的函数,使⽤⽅法是rand()%(n-m+1)+m,这个式⼦表⽰产⽣[m,n]范围内的随机数。
因为,对于任意数,0<= rand()%(n-m+1)<= n-m,
        ----->,0+m<= rand()%(n-  m+ 1)+ m<= (n- m)+ m。
就⽐如你要⽣成[0,69]范围内的随机数,就要写成rand()%70 => rand%(69+ 1)+ 0,这⾥的69就相当于 rand()%((69- 0+ 1+ 0)。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, n;
n = 5;
/* 初始化随机数发⽣器 */
srand(time(NULL));  //随机种⼦,获得不同的随机数
return在c语言中是什么意思/* 输出 0 到 69 之间的 5 个随机数 */
for( i = 0 ; i < n ; i++ ) {
printf("%d\n", rand() % 70);
}
return(0);
}
注意这⾥的srand()函数是随机数发⽣器,void srand(unsigned int seed):返回值为空,就是设置随机种⼦的,当我们不设置随机种⼦的时候,默认设置的种⼦为 1,也就是srand(1)。
使⽤rand()时,如果不设定随机数序列标签则只会得到重复的随机数序列,其叫做伪随机数,seed的作⽤:srand函数的作⽤是根据参数seed,设置⼀个随机起始点,⽽rand函数根据这个起始点发⽣随机数序列。
如果我们想要程序每次执⾏⽣成的随机数都不⼀样就需要使种⼦的值⼀直在变化。这⾥我们使⽤time.h⾥的time函数, timer=NULL时得到当前⽇历时间(从1970-01-01 00:00:00到现在的秒数)。以此来得到不同的种⼦。