srand(time(0));//设置时间种子是什么意思(是c语言中的)
展开全部
因为系统的时间每次都不同,这样可以避免每次产生的随机数都相同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从1970年1月1日到现在时间的秒数
追问
time后为什么是0
追答
为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的了)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
计算机产生的随机数并不是真正随机的,所以叫 伪随机数。
当“种子”固定时,它产生的随机数序列是不变的,例如产生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个数变化
当“种子”固定时,它产生的随机数序列是不变的,例如产生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个数变化
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询