c语言系统时间随机种子,C语言中以时间为种子,产生随机数的函数

srand((unsigned)time(NULL)

+++++++++++++++++++++++++++++++++++++++++++++++++

以时间为种子,其实再产生随机数的函数中都会加,这样可以使得取得随机数更有代表性,否则取出来的数可能是服从正态分布的!

一句标准格式而已,需要记的!

++++++++++++++++++++++++++++++++

我们知道在产生随机数的时候,需要一个叫做种子seed的值作为产生随机数算法的初始值。

而C/C++库中的srand就是为这一次的随机数生成设置种子。s代表的就是seed的意思。

time_t time(time_t *time);该函数返回自计算机计时的某个时刻起到现在所过去的秒数。

一般是返回自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数。

所以综上所述:

srand((unsigned)time(NULL));

这语句的含义就是以自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数作为

产生随机数算法的种子seed。

没有语句会对程序产生什么影响:

如果在程序运行时没有自主设置种子的话,用函数rand产生的随机数序列会是一样的。

而用srand设置随机数种子后,可能产生不同的随机序列(概率很大)。

之所以说以很大的概率产生不同的随机数序列,是因为从上面的解释可以看到,

srand是以秒数为单位的。一旦程序多次运行的时间间隔少于1s。那么srand设置种子也没有什么用处。所以库函数产生随机数有一定的缺陷。不知道我解释明白了没有!已赞同14| 评论(1)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值