对于许多人来说,
随机数产生会混淆不清,博主采用了最简单的方法对比;虽然看似简单,但是理解就好!!!
#include <stdio.h>
#include <time.h> // time函数
#include <stdlib.h>
int main(int argc, char const *argv[])
{
int i,number;
// 第一种
for (i=0; i<5; i++)
printf("%5d\t",rand());
printf("\n") ;
printf("\n") ;
//第二种
printf("%5d ",rand());
printf("%5d ",rand());
printf("%5d ",rand());
printf("%5d ",rand());
printf("%5d ",rand());
printf("\n") ;
printf("\n") ;
// 第三种
for (i=0; i<5; i++)
{
srand(i) ; // 种子数虽然也变化,但是变化太小!!!
printf("%5d\t",rand());
}
printf("\n") ;
printf("\n") ;
/*
以上程序表明rand()随机函数,调用并不会真正意义产生随机数,只是产生伪随机数。
如果未主调rand() 函数,系统默认调用srand()函数,但是并不会产生真正意义的随机数,只是“增长序列数”
srand(seek) 种子seek不变的话,产生的数也是不变的!!!
*/
// 第四种
srand(time(NULL)*100 );//srand(time(0) );设定随机数种子; *10 是为了增大随机性
for(i=0 ;i<5 ;i++)
printf("%5d\t" ,rand()%101 ) ; //% 101; //产生0-100的随机数
printf("\n") ;
printf("\n") ;
// rand()%m + n ; // -----即可产生n到m+n-1范围的随机数
return 0;
}
通常一般采用time(0)作为随机数种子!!!