news 2026/6/6 19:44:35

rand():生成伪随机整数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 13:17:53

ArcGIS大师之路500技---039趋势面法

文章目录前言一、预测房价的宏观规律二、给地球“脸部按摩”三、趋势值与残差四、阶数选择五、实际应用场景六、优缺点七、与反距离权重法的根本区别总结前言 想象一下&#xff0c;你站在一片连绵起伏的山坡上&#xff0c;地上随意撒着一些落叶。如果你只看脚下的几片叶子&…

作者头像 李华
网站建设 2026/6/6 15:49:41

告别Visio!Excalidraw成为新一代手绘图首选

告别Visio&#xff01;Excalidraw成为新一代手绘图首选 在一次远程技术评审会上&#xff0c;团队成员各自打开浏览器&#xff0c;点击同一个链接后&#xff0c;瞬间进入一个“看起来像是手绘”的白板界面。产品经理刚说出“我们需要一个用户下单的流程图”&#xff0c;AI插件便…

作者头像 李华
网站建设 2026/6/6 2:26:03

Excalidraw API详解:如何将其嵌入现有系统实现无缝对接

Excalidraw API详解&#xff1a;如何将其嵌入现有系统实现无缝对接 在当今快速迭代的软件开发环境中&#xff0c;团队沟通的成本往往不在于“有没有工具”&#xff0c;而在于“是否能在同一个语境下高效协作”。设想这样一个场景&#xff1a;一场远程架构评审会议正在进行&…

作者头像 李华
网站建设 2026/6/6 6:46:39

Python+Vue的学生管理系统的设计与开发Pycharm django flask

这里写目录标题 项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示 收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目展示 项目编号&#x…

作者头像 李华
网站建设 2026/6/5 15:34:18

Python+Vue的基于协同过滤的音乐推荐系统的设计与实现 Pycharm django flask

收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 随着现代音乐的快速发展&#xff0c;协同过滤的音乐推荐系统已成为人们业余生活的需求。该平台采用Python技术和django搭建系统框架&#xff0c;后台使用MySQL数据库进行信息管理&#xff…

作者头像 李华
网站建设 2026/5/31 14:02:56

Python+Vue的电影票房数据分析系统的设计与实现 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多的人技术栈文章下方名片联系我即可~解决的思路…

作者头像 李华