C语言-生成随机数

目录

1 rand()函数

2 srand()函数


1 rand()函数

int rand (void);

rand函数可以生成一个随机整数,范围在 0 ~ RAND_MAX,RAND_MAX的值是0x7fff,换算成十进制是32767。

但是我们发现使用此函数生成随机数,每次生成的随机数都是一样的,都是如下图的顺序的几个数

实际上rand()产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,这个数值被称为“种子”,种子和随机数的关系是一种正态分布。种子在每次启动计算机是随机的,一旦启动种子就不会改变,生成的随机数也就是固定的了。

2 srand()函数

srand函数用于给rand函数设定种子

void srand (unsigned int seed);

srand需要无符号整数作为参数,传入不同的值才能生成不同的种子,这里我们一般用时间戳(time函数会返回一个时间戳),因为时间是随时在改变的。

time函数的返回值是time_t类型的值,我们要强转为无符号整数类型,或者无符号类型,如下:

srand((unsigned)time(NULL));

注意:srand函数在一个工程中设置一次就行,也就是说,即使rand函数执行很多次,srand也只要调用一次就行。

生成随机数的范围,可以在rand函数后面取余,比如:

int a = rand() % 10; //产生0~9的随机数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/473562.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C深度解剖】前置++与后置++

简介:本系列博客为C深度解剖系列内容,以某个点为中心进行相关详细拓展 适宜人群:已大体了解C语法同学 作者留言:本博客相关内容如需转载请注明出处,本人学疏才浅,难免存在些许错误,望留言指正 作…

挑战杯 YOLOv7 目标检测网络解读

文章目录 0 前言1 yolov7的整体结构2 关键点 - backbone关键点 - head3 训练4 使用效果5 最后 0 前言 世界变化太快,YOLOv6还没用熟YOLOv7就来了,如果有同学的毕设项目想用上最新的技术,不妨看看学长的这篇文章,学长带大家简单的…

程序员搞什么副业才有性价比?

干一行恨一行,三百六十行,行行干破防! 一份稳定的主业固然重要,但是有性价比的副业更令人心动。朝九晚五的工作日复一日,当然也可能是996的生活反复捶打。从整体来讲,程序员算是高收入群体,但往…

从六大晶圆厂财报看半导体行业2024年复苏

2023年,全球半导体行业经历了重大调整,在面临高通胀风险及库存水平调整的过程中,市场短期展望并不明朗。然而,根据TrendForce对全球六大顶尖半导体代工厂(TSMC、三星电子、英特尔、GlobalFoundries、UMC和SMIC&#xf…

函数、极限、连续——刷题(4

目录 1.题目:2.解题思路和步骤:3.总结:小结: 1.题目: 2.解题思路和步骤: 记住这个公式即可: 所以就很容易求解了: 3.总结: 记住这个公式即可: 小结&am…

mysql 执行update操作 记录未修改

问题 mysql 执行update操作 记录未修改 详细问题 笔者进行SpringBootMybatis项目开发,确认执行update操作 控制台内容如下 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession3cbe9459] was not registered for sync…

算法——数论——同余

目录 同余 一、试题 算法训练 同余方程 同余 同余使人们能够用等式的形式简洁地描述整除关系同余:若 m(正整数),a 和 b 是整数,a%mb%m,或(a-b)%m0,记为 a b(mod m)求解一元线性同余方程等价于…

Halcon 相机标定

文章目录 算子单相机标定单相机标定畸变的矫正 算子 gen_caltab 生成标定文件 gen_caltab(::XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile :) 算子来制作一个标定板XNum 每行黑色标志圆点的数量。YNum 每列黑色标志圆点的数…

2023年程序员观察报告

春节假期已过,2023年悄然过去,2024年已经到来,无论2023年是快乐的、成长的、积极的,亦或是痛苦的、寂寥的、迷茫的,都要恭喜在座的各位程序员又熬过了一年! ①加班篇 2023年,你完成了 132个需求…

【数据结构】17 二叉树的建立

二叉树的建立 由于树是非线性结构,创建一颗二叉树必须首先确定树中结点的输入顺序,常用方法是先序创建和层序创建。 层序创建所用的节点输入序列是按数的从上至下从左到右的顺序形成的各层的空结点输入数值0。在构造二叉树过程中需要一个队列暂时存储各…

Linux网络编程——守护进程

文章目录 1. 前台 & 后台进程2. Linux进程之间的关系3. 守护进程 本章Gitee仓库:守护进程 1. 前台 & 后台进程 在Linux系统登陆的时候,它会给我们形成一次会话,会话在系统里面会创建一个bash进程,这个bash就会给用户提供…

websocket数据帧格式

客户端、服务端数据的交换,离不开数据帧格式的定义。因此,在实际讲解数据交换之前,我们先来看下WebSocket的数据帧格式。 WebSocket客户端、服务端通信的最小单位是帧(frame),由1个或多个帧组成一条完整的消…