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

本文介绍了C语言中rand()函数生成伪随机数的原理,以及如何通过srand()函数设置种子来实现不同的随机数序列。同时,详细讲解了time()函数的作用,它是如何获取当前时间并用于产生不重复的随机数种子。通过srand((unsigned)time(NULL))的组合使用,可以确保每次运行程序时得到不同的随机数,从而在需要真实随机性的场景下发挥作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()的基数(种子)也是每时每刻不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值