srand(time(0));//设置时间种子是什么意思(是c语言中的)

 我来答
百度网友2ebe1e4f3
2015-05-20 · TA获得超过1.3万个赞
知道大有可为答主
回答量:9245
采纳率:52%
帮助的人:3308万
展开全部
因为系统的时间每次都不同,这样可以避免每次产生的随机数都相同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海桑田终为梦
2015-05-20
知道答主
回答量:7
采纳率:0%
帮助的人:7482
展开全部
从1970年1月1日到现在时间的秒数
追问
time后为什么是0
追答
为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的了)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
推荐于2017-11-27 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5743万
展开全部
计算机产生的随机数并不是真正随机的,所以叫 伪随机数。
当“种子”固定时,它产生的随机数序列是不变的,例如产生10个数,这10个数大小是变化的,但只要用这个种子,每次产生的这10个数序列,是一模一样的。
用 srand(time(0)); 设种子,就会因时间变化,得到不同的种子,那么随机数序列就会变化。
time(0) 是当前时间,(精度可能是毫秒)。只要两次跑程序启动时间差别 超过1毫秒,两个序列就不同了(随机)。如果,时间差别不到1毫秒,两个序列就没变化。
--------
错误的程序:
for (i=0;i<5;i++){
srand(time(0)); // 5次的种子若不变
printf("%d ",rand()); // 依次取 5个序列的 第一个数
}
5个数不变化。
-------------------
正确的程序:
srand(time(0)); // 设1次种子
for (i=0;i<5;i++){
printf("%d ",rand()); //依次取1个序列的第1到第5个随机数
}
5个数变化
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式