a=rand()%100+1; rand()代表着什么 rand()%100+1为什么就是0~100内取值?
srand(time(NULL));//用系统时间当种子是什么意思举个例子srand(time(NULL))这个范围是什么...
srand(time(NULL));//用系统时间当种子
是什么意思
举个例子
srand(time(NULL)) 这个范围是什么 展开
是什么意思
举个例子
srand(time(NULL)) 这个范围是什么 展开
2个回答
展开全部
意思是:用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)),这样每次运行程序的时间肯定是不相同的,产生的随机数肯定就不一样了。
参考资料来源:
展开全部
随机数的产生需要一个种子,如果种子相同每次产生的随机数序列也会相同。
你试着不用srand(time(NULL));,你会发现每次程序得到的随机数都是一样,也就失去了随机数的意义。
rand() 是产生一个随机整数的函数,其分布范围是0到最大的整数,
rand() %100 指和100取余,得到一个0到99整数
rand() %100 +1 得到一个1到100的整数
你试着不用srand(time(NULL));,你会发现每次程序得到的随机数都是一样,也就失去了随机数的意义。
rand() 是产生一个随机整数的函数,其分布范围是0到最大的整数,
rand() %100 指和100取余,得到一个0到99整数
rand() %100 +1 得到一个1到100的整数
追问
种子是干什么用的啊!谢谢
追答
举个例子,以下流程要一个种子2
计算sqrt(2) =1.414 得到的小数部分取前3位做为随机数,即返回414(第1个随机数), 把414作为下一个种子
计算sqrt(414)=20.346 得到的小数部分取前3位做为随机数,即返回346(第2个随机数), 把346作为下一个种子
计算sqrt(346)...... 得第n个随机数
当然计算机里不是这么简单就得到随机数的,其函数比上所列的要复杂,但原理是一样的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询