c++中的随机数rand()

2023-05-16

总结:1, RANK_MAX = 32767
	  2, 随机范围:num = rank() % x

C++中rand() 函数的用法

1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。

2、如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100;

这样,num的值就是一个0~99中的一个随机数了。

3、如果要产生1~100,则是这样:int num = rand() % 100 + 1;

4、总结来说,可以表示为:int num = rand() % n +a;

其中的a是起始值,n-1+a是终止值,n是整数的范围。

5、一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数。

6、若要产生0~ 1之间的小数,则可以先取得0~10的整数,然后均除以10即可得到“随机到十分位”的10个随机小数。

若要得到“随机到百分位”的随机小数,则需要先得到0~100的10个整数,然后均除以100,其它情况依 此类推。

7、通常rand()产生的随机数在每次运行的时候都是与上一次相同的,这样是为了便于程序的调试。

若要产生每次不同的随机数,则可以使用srand( seed )函数进行产生随机化种子,随着seed的不同,就能够产生 不同的随机数。

8、还可以包含time.h头文件,然后使用srand(time(0))来使用当前时间使随机数发生器随机化,这样就可以保证每两 次运行时可以得到不同的随机数序列,同时这要求程序的两次运行的间隔超过1秒。

9、举例如下:

rand(产生随机数)
表头文件: #include<stdlib.h>
定义函数 :int rand(void)

函数说明 :
因为rand() 的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,
rand() 会返回一随机数值,范围在 0 至 RAND_MAX 间。
在调用此函数产生随机数前,必须先利用 srand()设置好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为 1。
rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是 srand()。

返回值:
返回 0 至 RAND_MAX 之间的随机整数值,RAND_MAX 的范围最少是在 32767 之间(int),即双字节(16位数)。
若用unsigned int 双字节是 65535,四字节是 4294967295 的整数范围。
0~RAND_MAX 每个数字被选中的机率是相同的。

范例1/* 产生介于 1 到 10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考 srand()*/

#include<stdlib.h>
int main()
{
	int i,j;
	for(i=0; i<10; i++)
	{
		j=1+(int)(10.0 * rand()/(RAND_MAX+1.0));
		printf("%d ",j);
	}
}

执行:
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数

范例2:
/* 产生介于 1 到 10 间的随机数值,此范例与执行结果可与 rand()参照*/


#include<time.h>
#include<stdlib.h>
int main()
{
	int i,j;
	srand((int)time(0));
	for(i=0; i<10; i++)
	{
		j=1+(int)(10.0 * rand()/(RAND_MAX+1.0));
		printf(" %d ",j);
	}
}

执行:与 rand() 范例比较:
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7 //再次执行仍然产生相同的随机数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++中的随机数rand() 的相关文章

  • 什么样的人适合学习网络安全?怎么学?

    前言 有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题 xff1a 什么样的人适合学习网络安全 xff1f 我适不适合学习网络安全 xff1f 会产生这样的疑惑并不奇怪 xff0c 毕竟网络安全这个专业在2017年
  • kali更新源(源、软件更新,附kali源)

    很多系统安装好以后都需要进行更新源 xff0c 或者软件需要更新 xff0c 小编在这里进行一次更新源和软件的记录 xff0c 还请路过大牛指出不足 1 在 etc apt下有文件sources list文件 xff0c 将下方提供的源粘贴
  • 求一组数的平均值、最大值和最小值。

    include lt stdio h gt int main 从键盘上输入n个int型整数 xff0c 其中1 lt 61 n lt 61 100 xff0c 求得这组数的平均值 最大值和最小值 int i n b 平均值 xff08 浮点
  • 新型笔记本电脑装Linux没声音可能的解决办法(适用Arch和Debian系)

    问题起因 很多人可能会因为Linux没声音而上百度搜索 xff0c 结果没有一个靠谱的方案 xff0c 只能装回Windows吧 其实 xff0c 你只需要安装几个软件包就行 xff08 本人用的是Arch系的ArchLinux xff0c
  • 2022秋季C语言专题实验07

    2022秋季C语言专题实验07 指针应用 查找数组元素请编写函数CHG char S 7 1 秋天的第一杯奶茶7 2 统计单词7 3 找最大字符串7 4 字符串排序7 5 缩写期刊名7 6 魔镜7 7 书号判断与纠错7 8 检查密码7 9
  • 分解质因数(java解决)

    问题描述 求出区间 a b 中所有整数的质因数分解 输入格式 输入两个整数a xff0c b 输出格式 每行输出一个数的分解 xff0c 形如k 61 a1 a2 a3 a1 lt 61 a2 lt 61 a3 xff0c k也是从小到大的
  • FFmpeg工具使用总结

    一 FFmpeg是什么 xff1f 简单说 xff0c FFmpeg就是一个很好的 xff0c 免费的 xff0c 开源的视频转换工具 详细说 xff0c FFmpeg是一个开源免费跨平台的视频和音频流方案 xff0c 属于自由软件 xff
  • kali中的kalitools首页讲解

    提示 xff1a 看完别忘了关注 xff0c 点赞谢谢 文章目录 前言 一 查询器是什么 xff1f 二 使用步骤 1 打开firefox xff0c 启动页就是 xff08 kalitools xff09 查询器 2 工具查询 3 kal
  • 汉诺塔问题

    汉诺塔 题目描述 古代有一个梵塔 xff0c 塔内有3个座A xff0c B xff0c C 开始时A座上有n个盘子 xff0c 盘子大小不等 xff0c 大的在下 xff0c 小的在上 有一个老和尚想把这n个盘子从A座移到C座 xff0c
  • Ubuntu(虚拟机)的Anaconda 及使用

    安装Anaconda 使用firefox打开Ananconda网址Anaconda The World 39 s Most Popular Data Science Platform 下载后有 sh文件 xff1a Anaconda3 20
  • android 10.0 SystemUI屏蔽某个app的通知

    1 概述 在10 0的系统产品开发中 产品有需求 需要状态栏不显示某个app的通知 根据SystemUI源码通知显示流程可以得知NoticationFilter java中可以处理过滤通知 2 SystemUI屏蔽某个app的通知的核心类
  • 如何从windows host快速访问wsl文件夹

    背景 习惯在linux环境做开发活动 但也喜欢windows生态下的很多软件 如 web开发 xff0c 在windows下做视频 图片 文档编写等工作 qt开发 xff0c qt linguist在windows下原生支持简体中文 pyt
  • mysql分组查询

    概念 分组查询主要是用来统计的 xff0c 一般都是按照某一个列进行统计分组 统计类型 xff1a 求平均 xff0c 求最大 xff0c 求最小 xff0c 求和等等 分组查询需要结合分组函数一起完成 xff0c 常用的分组函数 xff1
  • Ubuntu 22.04自动挂起后无法唤醒

    可实现在键盘 鼠标断电后的唤醒 xff0c 前提是合上笔记本 但是为了以防万一 xff0c 建议在设置中将挂起有关选项全部关闭 一 安装 xff08 这个不知道干嘛的 xff09 sudo apt get install pm utils

随机推荐

  • C语言入门——1000以内的完数

    完数定义 如果一个数恰好等于它的真因子之和 xff0c 则称该数为 完全数 2 各个小于它的约数 xff08 真约数 列出某数的约数 xff0c 去掉该数本身 xff0c 剩下的就是它的真约数 xff09 的和等于它本身的自然数叫做完全数
  • 利用数组进行排序(选择排序)

    排序过程 1 首先通过n 1次比较 xff0c 从n个数中找出最小的 xff0c 将它与第一个数交换 第一趟选择排序 xff0c 结果最小 的数被安置在第一个元素位置上 xff08 2 xff09 再通过n 2次比较 xff0c 从剩余的n
  • C语言 : 矩阵转置 (二维数组)

    题目描述 xff1a 输入N N的矩阵 xff0c 输出它的转置矩阵 矩阵的转置操作 xff0c 即把矩阵的行元素变为列元素 列元素变为行元素的过程 输入 xff1a 第一行为整数N xff0c 接着是一个N N的矩阵 输出 xff1a 转
  • C++打卡12-百鸡百钱

    一 实验目标 公鸡1只5钱 xff0c 母鸡1只3钱 xff0c 小鸡3只1钱 xff0c 用百钱买百鸡 xff0c 问有几种购买的方案 xff1f 输入格式 输入n和m 表示用n钱买m只鸡 输出格式 输出购买的方案数 输入 100 100
  • 【C语言】十六进制转换为十进制

    目录 题目描述 补充知识 xff1a 算法分析 优化算法 写在最后 题目描述 输入一个十六进制数字串 xff0c 将其转换成为对应的整数并输出转换结果 xff0c 遇到非十六进制数字或字符串结束符 xff08 39 0 39 xff09 结
  • C语言程序入门之基本数据类型、常量与变量、运算符

    目录 一 基本数据类型 1 整型 2 浮点型 3 字符型 二 常量与变量 1 常量 2 变量 三 运算符 1 算术运算符 2 关系运算符 3 逻辑运算符 4 位运算符 5 自增自减运算符 6 赋值运算符 7 逗号运算符 8 条件运算符 9
  • C语言入门之分支与循环

    目录 一 分支语句 1 if语句 三种形式 if语句的嵌套 2 switch 二 循环语句 1 while语句 2 do while语句 3 for语言 一 分支语句 分支语句又叫选择结构语句 xff0c C语言中 xff0c 选择结构语句
  • Android 10.0 系统设置开启始终在后台运行的权限

    android 6 0系统中保活机制 所以在系统内存不够的时候 后台运行的app有可能会被系统杀掉 所以为了让app不能系统杀掉保持永久运行 就必须要增加权限 把app 添加到保活白名单里面 或者授予后台运行的权限 接下来看Settings
  • C语言之数组

    目录 一 一维数组 1 一维数组的定义 2 一维数组初始化 3 一维数组的引用 4 一维数组程序举例 二 二维数组 1 二维数组的定义 2 二维数组的初始化 3 二维数组的引用 4 二维数组的举例 三 字符数组 1 字符数组的定义 2 字符
  • C语言之函数

    目录 一 函数的定义 二 函数的参数 1 实际参数 xff08 实参 xff09 2 形式参数 xff08 形参 xff09 三 函数的调用 四 函数的返回 五 函数的声明 一 函数的定义 函数是一块代码 xff0c 接受零个或多个参数 x
  • C语言之指针运算符、指针变量及其定义、指针的使用

    目录 一 指针运算符 1 amp 运算符 2 运算符 二 指针变量及其定义 1 指针变量 2 定义指针变量 三 指针的使用 指针 xff0c 是C语言中的一个重要概念 xff0c 也是掌握C语言比较困难的部分 指针也就是内存地址 xff0c
  • C语言——指针的运算以及野指针

    目录 一 野指针 1 野指针成因 xff08 1 xff09 指针未初始化 xff08 2 xff09 指针越界访问 xff08 3 xff09 指针指向的空间释放 2 如何规避野指针 二 指针的运算 1 赋值运算 2 算术运算 3 关系运
  • C语言错题总结

    输出格式 xff08 以整形为例 xff0c 其他类似 xff09 xff1a d是普通的输出 5d是将数字按宽度为5 xff0c 采用右对齐方式输出 xff0c 若数据位数不到5位 xff0c 则左边补空格 xff0c 若数据位数超过5位
  • C语言小游戏之弹跳的小球

    1 显示静止的小球 首先利用printf函数在屏幕坐标 xff08 x y xff09 处显示一个静止的小球字符 39 o 39 xff0c 应当注意屏幕坐标系的原点在左上角 xff0c 代码如下 xff1a include lt stdi
  • 解决Clash意外关闭后的问题;附clash常见问题解决办法

    一 引言 最近 xff0c 我在一次win11的重启更新后遇到了一个问题 xff0c 那就是发现我的浏览器无法上网了 起初 xff0c 我以为我的网络存在问题 xff0c 但后来发现不是这个问题 经过我查阅资料以及实际操作后 xff0c 我
  • Qt 获取所有进程、终止某个进程

    代码中用到Qt库的地方 xff0c 不使用Qt库的可以替换为自己相应的函数 方法一 xff1a 1 Qt开源库 xff0c 通过QProcess启动系统命令 tasklist exe 获取正在运行的进程 2 QProcess process
  • Qt QPixmap设置图片透明度

    最近看到美图秀秀的一些功能 xff0c 可以手动设置图片的透明度并显示在其它图片上 xff0c 所以自己动手做了个小Demo xff0c 实际效果如下 xff1a xff08 图片仅供参考使用 xff09 可以看到拖动下方进度条 xff0c
  • 【IDEA报错】Failed to start bean ‘documentationPluginsBootstrapper‘问题及解决方案

    使用springfox swagger2进行接口文档输出 编写配置文件Swagger2Config 64 Configuration 64 EnableSwagger2 public class Swagger2Config 64 Bean
  • Android 调整Spinner下拉框高度(避免下拉列表跑到顶部)

    在运用系统原生的Spinner控件做下拉选择功能时 由于选择项的子项Item太多 导致下拉列表跑到上面去了 关键原因是系统下拉默认的高度 spinner所在的位置 超过了屏幕底部的高度 所以就会出现下拉列表跑到控件的头部去了 解决方案 1
  • c++中的随机数rand()

    总结 xff1a 1 RANK MAX 61 32767 2 随机范围 xff1a num 61 rank x C 43 43 中rand 函数的用法 1 rand 不需要参数 xff0c 它会返回一个从0到最大随机数的任意整数 xff0c