当前位置: 首页 > news >正文

rand():生成伪随机整数

2.% 7:取模运算(求余数)

%是 C 语言中的取模运算符,作用是计算左边的数除以右边的数后得到的余数。取模运算有一个关键特性:一个数对n取模,结果的范围一定是0n-1(当被除数为非负数时)。

比如:

3. 整体:rand() % 7的最终效果

把两部分结合起来,rand() % 7的作用是:生成一个范围在06之间的随机整数(包含 0 和 6)。因为rand()生成的数是0 ~ RAND_MAX的非负数,对 7 取模后,余数只能是 0、1、2、3、4、5、6 中的一个。

二、代码示例

下面的代码展示了rand() % 7的实际使用,同时加上srand()设置种子,让每次运行的随机数不同:

c

运行

#include <stdio.h> #include <stdlib.h> #include <time.h> // 用于获取系统时间作为种子 int main() { // 设置随机数种子:用系统时间(time(0)返回当前时间的秒数) srand((unsigned int)time(0)); // 生成5个0~6的随机数 printf("生成的0~6的随机数:"); for (int i = 0; i < 5; i++) { int random_num = rand() % 7; // 核心代码 printf("%d ", random_num); } printf("\n"); return 0; }

输出示例(每次运行结果不同):

plaintext

生成的0~6的随机数:3 0 5 2 6

三、扩展:如何生成指定范围的随机数

如果想生成 ** 从ab(包含 a 和 b)** 的随机整数,可以用这个公式:

c

运行

// 生成 [a, b] 范围的随机数 rand() % (b - a + 1) + a;

比如:

总结

  • 现在用rand() % 7这行代码,从函数作用、运算符功能、最终效果和使用注意事项等方面详细拆解。
  • 我们把代码拆成rand()% 7两个部分,先分别理解,再看整体效果:

    1.rand():生成伪随机整数

    rand()<stdlib.h>头文件中的函数,它的作用是生成一个范围在0RAND_MAX之间的伪随机整数

  • RAND_MAX<stdlib.h>中定义的常量,通常值为32767(2^15 - 1),不同编译器可能略有差异,但一定是一个正整数。
  • 注意:rand()生成的是伪随机数,如果不通过srand()设置随机数种子,每次运行程序,rand()都会生成相同的序列。
  • 8 % 7 = 1(8 除以 7,商 1 余 1)
  • 7 % 7 = 0(7 除以 7,商 1 余 0)
  • 13 % 7 = 6(13 除以 7,商 1 余 6)
  • 0 % 7 = 0
  • 生成1~7的随机数:rand() % 7 + 1b-a+1=7a=1
  • 生成5~10的随机数:rand() % 6 + 5b-a+1=6a=5
  • rand() % 7的核心作用是生成06之间的随机整数,其中rand()产生 0 到RAND_MAX的伪随机数,%7通过取模限制范围。
  • 使用rand()时,需要配合srand((unsigned int)time(0))设置随机数种子,否则每次运行程序会得到相同的随机数序列。
  • 若要生成[a, b]范围的随机数,可使用公式rand() % (b - a + 1) + a
http://www.rkmt.cn/news/129667.html

相关文章:

  • Excalidraw部署教程:私有化搭建企业级白板系统
  • Excalidraw与主流白板工具对比:优势、劣势全分析
  • Python+Vue的农产品销售系统的设计与实现_ Pycharm django flask
  • Python+Vue的 基于Flask的电影数据分析及可视化系统Pycharm django flask
  • Excalidraw安全性评估:适合企业内部使用的理由
  • Excalidraw与主流协作工具对比:为何它更适合技术团队
  • 如何用Excalidraw手绘风格白板提升团队协作效率?
  • Excalidraw结合大模型token实现智能图形生成
  • Excalidraw API详解:如何将其嵌入现有系统实现无缝对接
  • 21、掌握 Windows Vista 多媒体功能全攻略
  • Excalidraw在远程办公中的应用:高效沟通不再难
  • Excalidraw与Notion集成:打造无缝知识管理体系
  • Linly-Talker在城市规划展示厅的应用实例
  • 18、深入探索Active Directory集成:应用与工具全解析
  • 利用Excalidraw进行敏捷开发中的用户故事映射实践
  • Linly-Talker可用于生成AI星座运势播报
  • Linly-Talker与腾讯云ASR协同工作流程
  • Excalidraw与Figma对比:轻量级绘图工具的优势
  • 43、嵌入式系统开发:BSP 与实时应用指南
  • Excalidraw镜像上线:为开发者提供极致简化的绘图协作环境
  • Excalidraw入门到精通:5分钟掌握核心操作
  • GB+GBC游戏大全(原版+中文+目录+攻略)
  • Linly-Talker在工厂流水线操作指引中的使用
  • Excalidraw如何帮助产品经理快速输出界面草图
  • 9、PowerShell 错误处理、测试及远程管理全解析
  • 38、简易流驱动项目开发指南
  • Linly-Talker支持语音增益自动调节功能
  • 3、PowerShell数据解析与操作实用指南
  • Linly-Talker与京东智联云合作部署方案
  • Linly-Talker在婚庆行业定制祝福视频的应用