c语言·(真正)随机数【简洁易懂版】

rand()

当提及c语言随机数,大家首先想到应该是rand()吧。但其实rand()不是生成真正的随机数,它的原理是它有一个基数(种子),然后rand()生成的数字与这个基数(种子)有关。(你不刻意设定基数,那么基数就是一样的。也就是说,你这次使用rand()和你下次使用rand()的结果是一样的)

srand()

srand()这个函数的功能就是为rand()设定一个基数(种子)。

用法:srand(数字),数字要unsigned类型。

time()

要调用此函数首先需#include<time.h>

此函数会返回一个值——1970年1月1日00:00:00到现在的时间差(以秒为单位)

用法:

1.time(NULL)或time(0)

time_t t1;

t1=time(NULL)(将空指针传入time()函数内,再将time()函数返回值赋给t1)

2.time(&t1)

time_t t1;

time(&t1)(将t1的地址传入time()函数内,返回值自动为t1赋值)

真正的随机数

srand((unsigned)time(NULL))(将time()返回值强制转型成unsigned传入srand,因为每时每刻的time()返回值都是不一样的,所以srand()的基数(种子)也是每时每刻不一样

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值