随机数rand()

对于许多人来说, 随机数产生会混淆不清,博主采用了最简单的方法对比;虽然看似简单,但是理解就好!!!
#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)作为随机数种子!!!

猜你喜欢

转载自blog.csdn.net/Mythology_px/article/details/79835806