c中time函数的用法以及随机数的产生

1. c语言中time函数的用法,头文件time.h:

机器日历时间也就是从一个时间点(例如 1970年1月1日0时0分0秒)到现此时的秒数。

函数名称:time

函数原型:time_t time(time_t *timer)

函数功能:得到机器的日历时间或者设置日历时间

函数返回:机器日历时间  

参数说明:timer=NULL时,得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long型

对于这个函数来说,如果已经声明了参数t,那么可以从参数t返回现在的日历时间,同时也可以通过返回值返回现在的日历时间。
如果参数为空,函数只通过返回值返回现在的日历时间。
                                                                                                                                                                  


对于上面的代码来说,两次打印出来的结果是一样的,我运行的时候都是1493382283,所以time(&t)中,变量t中存放当前的日期和时间(相当于函数返回值)。

time_t是长整型,所以打印的时候要用ld格式。


2.c语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数。是根据一个数(可以称之为种子)为基准以某个递推公式推算出来的一系列数,当这一系列数很多的时候,就符合正态分布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是确定的,除非你破坏了系统。为了改变这个种子的值,c提供了srand()函数,原型为void srand(int a)。

rand()会返回一个随机数,范围在0~RAND_MAX之间,RAND_MAX定义在stdlib.h,在调用次函数产生随机数之前,必须先利用srand()设置好随机数种子,如果没有设置种子,rand()在调用的时候回自动设随机数种子为1.

因此,可以用下面的方式产生不可预见的随机序列:

srand((unsigned int)(time(NULL))

因为每一次运行程序的时间是不同,所以无论什么时候都可以给srand()提供一个新的种子,从而进一步“随机化”rand()输出的结果。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值