最佳答案
rand 和 srand 的用法
首先我们要对 rand&srand 有个总体的看法:srand 初始化随机种子,rand 产生随机数,下面
将详细说明。
rand(产生随机数)
表头文件: #include<stdlib.h>
定义函数 :int rand(void)
函数说明 :
因为 rand 的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别
长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在 0 至
RAND_MAX 间。在调用此函数产生随机数前,必须先利用 srand()设好随机数种子,如果
未设随机数种子,rand()在调用时会自动设随机数种子为 1。rand ()产生的是假随机数字,
每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是 srand()。
返回值:
返回 0 至 RAND_MAX 之间的随机整数值,RAND_MAX 的范围最少是在 32767 之间
(int),即双字节(16 位数)。若用 unsigned int 双字节是 65535,四字节是
4294967295 的整数范围。
0~RAND_MAX 每个数字被选中的机率是相同的。
范例:
/* 产生介于 1 到 10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
执行:
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数
srand(设置随机数种子)
表头文件:#include<stdlib.h>