C语言,如何产生随机数:
在C中取随机数所需要对函数是:
int rand ( void );
void srand ( unsigned int n);
备注:必须包含该头文件#include <stdlib.h>
rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大
srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。
(1) (2)
int i; int i;
for(i=0;i<10;i++) srand(1);
printf(“%d\t”,rand()%10); for(i=0;i<10;i++)
运行结果:1 7 4 0 9 4 8 8 2 4 printf(“%d\t”,rand()%10);
运行结果:同(1)
(3) (2)
int i; int i;
srand (5) srand((unsigned)time(NULL));
for(i=0;i<10;i++) for(i=0;i<10;i++)
printf(“%d\t”,rand()%10); printf(“%d\t”,rand()%10);
运行结果:4 3 5 9 0 0 7 9 2 0 运行结果:
该程序每次运行结果都不一样,因为每次启动程序的时间都不同。另外需要注意的是,使用time()函数前必须包含头文件time.h。
注意事项:
求一定范围内对随机数;
如果去[0,10)之间对随机整数,需将rand()的返回值与10求模。
若是求[a,b),则使用:
(rand()%(b-a))+a;