srand(time(NULL));//用系统时间当种子
是什么意思
举个例子
srand(time(NULL)) 这个范围是什么
意思是:用rand()%100产生一个随机的数(1~100间)。
使用rand()是先要设置随机发生因子,srand()函数就是用来设置随机发生因子的。
可以用时间来做因子,DWORD timeGetTime()。
rand函数界限:stdlib.h头文件中有宏#define RAND_MAX 0x7fff。rand产生一个0-0x7fff的随机数,即最大是32767的一个数。
扩展资料
rand()函数每次调用前都会查询是否调用过srand(seed),是否给seed设定了一个值,如果有那么它会自动调用srand(seed)一次来初始化它的起始值。
若之前没有调用srand(seed),那么系统会自动给seed赋初始值,即srand(1)自动调用它一次。
rand()产生随机数时,如果用srand(seed)播下种子之后,一旦种子相同(下面的getpid方法),产生的随机数将是相同的。当然很多时候刻意让rand()产生的随机数随机化。
用时间作种子 srand(time(NULL)),这样每次运行程序的时间肯定是不相同的,产生的随机数肯定就不一样了。
参考资料来源:
种子是干什么用的啊!谢谢
追答举个例子,以下流程要一个种子2
计算sqrt(2) =1.414 得到的小数部分取前3位做为随机数,即返回414(第1个随机数), 把414作为下一个种子
计算sqrt(414)=20.346 得到的小数部分取前3位做为随机数,即返回346(第2个随机数), 把346作为下一个种子
计算sqrt(346)...... 得第n个随机数
当然计算机里不是这么简单就得到随机数的,其函数比上所列的要复杂,但原理是一样的