Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【C语言】rand()函数(如何生成指定范围随机数)

【C语言】rand()函数(如何生成指定范围随机数)

作者头像
修修修也
发布于 2024-04-01 06:41:21
发布于 2024-04-01 06:41:21
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

🦄个人主页:修修修也 🎏所属专栏:C语言 ⚙️操作环境:Visual Studio 2022

一.rand()函数简介

我们先来看一下cplusplus.com - The C++ Resources Network网站上rand函数的基本信息:

系统生成随机数时需要使用rand函数(rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。

由此可知,可以将rand函数理解为一个非常长的伪随机数组,而我们可以通过给rand函数传参来达到从不同的入口进入数组的效果。

因为随机数的属性,所以rand函数在一些简易的游戏程序中非常常见,如三子棋,扫雷等游戏都可以利用这个函数进行一些随机生成的玩法.

二.与time函数结合生成随机数

在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。

随机种子相同,即rand()函数进入的入口相同,则每次产生的随机数也会相同

srand种子可使用传入时间戳的方式来确定入口。如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
srand((unsigned int)time(NULL));

调用srand函数且传入当前时间戳是为了避免每次运行程序产生随机数的入口都相同的情况,用以确定本轮程序随机数生成的入口。 注:一次程序运行只需要使用srand函数确定一次入口就行,如果每次随机数的生成都依赖srand则可能会因为生成时间相近而导致生成的随机数相近甚至相同。

三.与取模结合生成指定范围随机数

有时我们需要生成的随机数的范围需要是0-99,又或是类似于100-200这种。而不是0-32767,这时就需要利用rand函数然后取模或加减相应的数就可以达到我们的要求了。

如:要生成0-99的随机数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num1=rand()%100;

生成100-200的随机数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num2=rand()%101+100

生成1800-1950的随机数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num3=rand()%151+1800

综上,可得公式生成n-m的随机数——>rand()%(m-n+1)+n

结语

希望这篇rand()函数的介绍到能对大家有所帮助,欢迎大佬们留言或私信与我交流.

学海漫浩浩,我亦苦作舟!大家一起学习,一起进步!

相关文章推荐 【C语言】判断字符类型的三种方法 【C语言】qsort()函数详解:能给万物排序的神奇函数 【C语言】整形数据和浮点型数据在内存中的存储 【C语言】结构体的大小是如何计算的(结构体对齐)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【C语言实战项目】猜数字游戏
如果还有不了解rand()函数的朋友可以移步【C语言】rand()函数详解,里面有非常详细的关于rand()函数的0基础详解。
修修修也
2024/04/01
1610
【C语言实战项目】猜数字游戏
C语言随机数的生成
生成范围: 0~RAND_MAX(32767) ​ 也可以对rand的取模操作,从而控制生成自己想要生成的范围 ​ eg:
黎鹤舞
2024/03/19
4850
C语言随机数的生成
C语言随机数生成:rand和srand函数
在C语言中随机数通常用库文件stdlib.h中的rand函数产生 rand函数生成的伪随机数是根据种子产生的 在没有使用srand函数置入种子之前,每次程序运行时都会遍历同一张 随机数表 。
MoyiTech
2023/02/27
2.3K0
C语言随机数生成:rand和srand函数
【C语言指南】随机数的实现——rand函数、srand函数和time函数
CPlusPlus中关于该函数的介绍 → rand - C++ 参考 (cplusplus.com)
倔强的石头_
2024/12/06
2.4K0
【C语言指南】随机数的实现——rand函数、srand函数和time函数
c语言rand函数生成随机数,详解C语言生成随机数rand函数的用法[通俗易懂]
说到rand函数,大家是不是会和EXCEL中的rand函数混淆,当小编第一次接触的时候也以为是EXCEL的函数,本文是爱站技术频道小编为大家带来的详解C语言生成随机数rand函数的用法,一起来看看吧!
全栈程序员站长
2022/08/01
2.9K0
rand(),srand()产生随机数
      rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a).       初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过
猿人谷
2018/01/17
3.1K0
c/c++产生随机数
转自:http://blog.csdn.net/beyond0824/article/details/6009908
forrestlin
2022/04/02
1.6K0
C语言随机数的生成及猜数字游戏
在写猜数字游戏的代码的时候,我们会用到随机数的生成,在其他的很多场景有时也会用到,在C语言中我们应当怎么去实现随机数的生成呢?
用户11070251
2024/04/11
2620
C语言随机数的生成及猜数字游戏
【C语言笔记】关于随机数的总结
该函数返回0~RAND_MAX之间的随机数,在stdlib.h中可知道,RAND_MAX为0x7FFF,如:
正念君
2019/06/26
2K0
【C语言笔记】关于随机数的总结
C语言_随机数
随机数的生成在一个令人感兴趣的领域——模拟与电子游戏 应用广泛。如何生成随机数是C语言中一个重要的知识内容。
From Zero
2021/02/22
2.6K0
【编程基础】C语言产生随机数需要了解的几个函数
C语言产生随机数是一个常见的编程功能任务,当然这个也不难,调用两三个函数就出来了,但是你知道这些函数具体是起到怎样的作用,并且是它们是如何产生随机数的吗? 几个概念 随机数:数学上产生的都是伪随机数,真正的随机数使用物理方法产生的。 随机数种子:随机数的产生是由算术规则产生的,srand(seed)的随机数种子不同,rand()的随机数值就不同,倘若每次的随机数种子一样,则rand()的值就一样。所以要产生随机数,则srand(seed)的随机数种子必须也要随机的。 用srand()产生随机数种子 原型:
程序员互动联盟
2018/03/13
1.4K0
【代码笔记】c语言实现生成随机数
实现原理: 原理:产生随机数的原理是根据一个值,一般称为随机种子,然后把这个种子作为参数,经过一系列的公式运算产生出一个值,这个值就是随机数。
吃猫的鱼Code
2023/02/02
1.3K0
【编程经验】C语言中如何使用随机数?
C语言中如何使用随机数 随机数的使用,是不少在学C语言过程中进行一些小功能开发的同学的一个技术问题,今天我们就为大家讲解如何在C语言中使用随机数。 通常情况下,使用最多的方法的就是使用rand函数随机生成伪随机数来完成随机数的生成工作。注意这里的伪随机数并非是假的! 只不过是计算机按自己的一套理论生成,并不是”完全理想”状态下的随机数,所以是可以接受的。 函数原型为:int rand(void); 需要包含stdlib头文件,它可以生成一个0 ~RAND_
编程范 源代码公司
2018/04/18
2.9K0
【编程经验】C语言中如何使用随机数?
PHP伪随机数问题
个人理解: mt_srand(seed)这个函数的意思,是通过分发seed种子,然后种子有了后,靠mt_rand()生成随机数。
字节脉搏实验室
2020/04/21
3.4K0
分支与循环(下)·猜数字
在cplusplus中对rand()产生随机数范围的最大值是描述的RAND_MAX
_lazy
2024/10/16
1000
分支与循环(下)·猜数字
大一C语言入门新手项目--猜数字
猜数字基本规则: 计算机给出一随机数,玩家输入猜测的数,程序给出偏大或偏小,玩家根据这一提示修改数字,在一定的次数内猜出数字。
fhvyxyci
2024/09/24
1320
大一C语言入门新手项目--猜数字
C语言如何生成随机数
rand()是生成伪随机数的函数,它会按照一定的序列来生成随机数,但是它序列是固定的:
全栈程序员站长
2022/08/01
3.2K0
C语言如何生成随机数
关于C语言随机数
在编写内存泄露的代码时候,用到了随机数这个概念,秉持着深入浅出的学习风格,我对涉及到的知识进行了总结。 我们洗牌 就是把不同的牌交换不同的位置 牌是54 也就是交换最大跨度就是54 微软提供了获取随机数的函数 rand(speed) 种子值。 如果未指定 seed,则 SQL Server 数据库引擎将随机分配种子值。 对于指定的种子值,返回的结果始终相同。
用户7272142
2023/10/11
3330
关于C语言随机数
C语言学习系列-->【关于随机数的实现】
程序在先使用rand函数前,先使用一个srand函数,通过 srand 函数的参数seed来设置rand函数⽣成随机数的时候的种⼦,只要种⼦在变化,每次⽣成的随机数序列也就变化起来了。
南桥
2024/01/26
1790
C语言学习系列-->【关于随机数的实现】
如何用rand产生随机数
首先我们要记住,rand函数生产的是伪随机数,它生产的数的范围是:0—RAND_MAX(32767)。如下图,这是第一次运行
秦jh
2024/01/19
2780
如何用rand产生随机数
相关推荐
【C语言实战项目】猜数字游戏
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验