rand 和 srand函数

#include <ctime>

srand(time(0));


rand()函数产生的是“伪”随机数,它是由软件做成m序列发生器输出的。这个m序列发生器在初始状态不变的情况也,产生的“序列”是相同的——比如说在某一种状态(如0000...)下,它产生的序列是1 2 3 4 5 2 3 5 1 6......那么,下一次在0000...的初始状态下产生的序列还是1 2 3 4 5 2 3 5 1 6......但是,如果初始状态不同,则产生的序列就不同了。为了使我们得到的“伪”随机数更像“真”随机数,我们希望每次调用rand()函数前的初始状态是变化的。为此,C设计了一个srand()函数,它预置m序列发生器的初始状态,而且用一个随时可变的时间函数的返回值来调用srand(),这样它预置的初始状态就是随时间变化的,这样产生的m序列尽管仍然是“伪”的,但就有了以假乱真的效果。

//------------------

srand(time(0)) 就是给这个算法一个启动种子,也就是算法的随机种子数,有这个数以后才可以产生随机数,用1970.1.1至今的秒数,初始化随机数种子。
Srand是种下随机种子数,你每回种下的种子不一样,用Rand得到的随机数就不一样。为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的了)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值