关于随机函数

time

  • c语言调用time()函数括号里面为什么要有个NULL?

    • time_t time(time_t *timer)
    • 你先自己定义一个time_t变量,然后把变量的地址传给它。函数会返回自1970年1月1日0点走过的秒数,同时把这个返回值保存在你传进来的那个time_t *指向的变量里面,如果你传进来NULL的话就不保存。
    • time_t类型指针本质上是指针变量也可以指向NULL。time()函数有个规定,如果你传进来的是一个NULL指针,那么系统返回当前时间,如果不是,那么系统认为你要修改当前时间,就把你传进去的指针对应的time_t变量的值设置为当前时间。
  • 一段程序

    • #include<time.h>
      static unsigned long int next = 1;
      int rand(void)
      {
          next = next * 1103515245 + 12345;
          return (unsigned int)(next / 65536) % 32768;
      }
      void srand(unsigned int seed)
      {
          next = seed;
      }
      
    • 在这个样例中,“种子”为静态内部变量next,初始值为1。如果我们不使用srand来更新next,很显然我们每次调用程序生成的伪随机数都是一样的(next从1开始)。如果我们在程序中用srand来更新next,那么我们每次运行程序,就给next初始化以不同的值,于是就能够得到不一样的伪随机数序列。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值