a=rand()%100+1; rand()代表着什么 rand()%100+1为什么就是0~100内取值?

srand(time(NULL));//用系统时间当种子是什么意思举个例子srand(time(NULL))这个范围是什么... srand(time(NULL));//用系统时间当种子
是什么意思
举个例子
srand(time(NULL)) 这个范围是什么
展开
 我来答
娱乐小八卦啊a
高粉答主

2019-09-19 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117848

向TA提问 私信TA
展开全部

意思是:用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)),这样每次运行程序的时间肯定是不相同的,产生的随机数肯定就不一样了。

参考资料来源:

百度百科——rand()

mr_shj
推荐于2017-10-06 · TA获得超过2681个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1379万
展开全部
随机数的产生需要一个种子,如果种子相同每次产生的随机数序列也会相同。
你试着不用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个随机数

当然计算机里不是这么简单就得到随机数的,其函数比上所列的要复杂,但原理是一样的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式