用rand和srand产生某两个数之间的随机数

随机数:

 

int rand(void);

void srand (unsigned int seed);

 

rand返回一个范围在0和RAND_MAX(至少为32767)之间的伪随机数。当它重复调用时,函数返回这个范围内的其他数。

但是只调用这个函数,在产生一次随机数序列之后,如果调用相同的程序,产生的随机数就是上次产生的随机数序列,除非产生比这个序列更多的随机数,才会在以前的序列后面出现新的随机数。

int main()

{

   int i=0;

   while(i<10)

    {

       printf("%d\n",rand());

       i++;

    }

 

   return 0;

}

运行一次之后,产生10个随机数,然后不管运行多少次,都是该10个数;把while(i<10)改成while(i<20)后,程序会在上次10个数字后面再添加10个随机数。

 

为了避免这种程序每次运行时获得相同的随机数序列,我们调用srand函数。它用它的参数值对随机数发生器进行初始化。一个常用的技巧是用时间作为随机数产生器的种子。

用rand和srand产生某两个数之间的随机数_第1张图片


注:

rand()函数的功能是产生一个随机数,不过他是需要一个种子才能产生,每次运行程序的时候rand()
的默认种子会是1,如果部提供一个随机种子的话就会每次产生的随机数值都是一样的;
srand()函数的功能就是给rand()函数提供公随机种子,一般在程序开始的时候用系统时间作为随机数种子,
这样得到的随机数就会不一样


你可能感兴趣的:(用rand和srand产生某两个数之间的随机数)