C++ Primer 5th笔记(chap 17 标准库特殊设施)随机数
1. 场景: rand 生成随机数
此函数生成均匀分布的伪随机整数, 每个随机数的范围在 0 和一个系统相关的最大值( 至少为 32767) 之间。
1.1 问题:
- 一些应用需要随机浮点数。
- 一些程序需要非均匀分布的数。
2. 解决方法:随机数库
随机数库的组成
- 随机数引擎类( random-number engines)
生成随机 unsigned 整数序列 - 随机数分布类(random-number distribution)
使用引擎返回服从特定概率分布的随机数
2.1 随机数引擎和分布
随机数引擎是函数对象类, 它们定义了一个调用运算符,该运算符不接受参数并返回一个随机 unsigned 整数。 我们可以通过调用一个随机数引擎对象来生成原始随机数
default_random_engine e; // 生成随机无符号数
for (size_ti = 0;i < 10; ++i)//e(T)"调用"对象来生成下一个随机数cout << e() <<" ";
输出:
16807 282475249 1622650073 984943658 1144108930 470211272…
2.2 随机数引擎操作
操作 | 解释 |
---|---|
Engine e; | 默认构造函数;使用该引擎类型默认的种子 |
Engine e(s); | 使用整型值s作为种子 |
e.seed(s) | 使用种子s重置引擎的状态 |
e.min(),e.max() | 此引擎可生成的最小值和最大值 |
Engine::result_type | 此引擎生成的unsigned整型类型 |
e.discard(u) | 将引擎推进u步;u的类型为unsigned long long |
2.3 分布类型和引擎
随机数发生器时, 是指分布对象和引擎对象的组合。
eg.为了得到在一个指定范围内的数, 我们使用一个分布类型的对象
// 初始化分布类型
// 生成0到 9 之间(包含)均匀分布的随机数
uniform_int_distribution<unsigned> u(0, 9);
// 初始化引擎
default_random_engine e;
// 随机生成0-9的无符号整数
cout << u(e) << endl;
输出
0 1 7 4 5 2 0 6 6 9
2.4 分布类型的操作
操作 | 解释 |
---|---|
Dist d; | 默认够赞函数;使d准备好被使用。其他构造函数依赖于Dist的类型;分布类型的构造函数是explicit的。 |
d(e) | 用相同的e连续调用d的话,会根据d的分布式类型生成一个随机数序列;e是一个随机数引擎对象。 |
d.min(),d.max() | 返回d(e)能生成的最小值和最大值。 |
d.reset() | 重建d的状态,是的随后对d的使用不依赖于d已经生成的值。 |
C++ Primer 5th笔记(chap 17 标准库特殊设施)随机数相关推荐
- C++ Primer 5th笔记(chap 17 标准库特殊设施)流随机访问
1. 流类型通常都支持对流中数据的随机访问. 可以重定位流, 使之跳过一些数据, 首先读取最后一行, 然后读取第一行, 依此类推. 1.1 标准厍提供了一对函数, 来定位( seek )到流中给定的位 ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)多字节低层IO操作
1. 多字节操作 一些未格式化 IO 操作一次处理大块数据,这些操作要求我们自己分配并管理用来保存和提取数据的字符数组 操作 解释 is.get(sink, size, delim) 从is中读取最多 ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)未格式化的输入/输出操作
1. 格式化IO 输入和输出运算符(<< 和>>)根据读取或写入的数据类型来格式化它们. 输入运算符忽略空白符 输出应用补白 精度等规则操作 2. 未格式化 IO (unfor ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)IO库 之操纵符
1. 控制浮点数格式 可以控制浮点数输出三个种格式 • 以多高精度( 多少个数字) 打印浮点值 • 数值是打印为十六进制. 定点十进制还是科学记数法形式 • 对于没有小数部分的浮点值是否打印小数点 1 ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配标志
1. 用来控制匹配和格式的标志 标准库还定义了用来在替换过程中控制匹配或格式的标志,这些标志可以传递给函数 regex_search 或 regex_match 或是类 smatch 的 format ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型
1. 多种类型的输入 可以搜索多种类型的输入序列. RE 库为这些不同的输入序列类型都定义了对应的类型,eg. 普通 char 数据.wchar_t 数据 字符可以保存在标准库string或是 cha ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式错误
1. 指定或使用正则表达式时的错误 如果我们编写的正则表达式存在错误, 则在运行时标准库会抛出一个类型为regex 的异常 eg. try {// alnum右括号少了一个, 构造函数会抛出异常reg ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型
1. 提取 bitset 的值 函数返回一个值,保存了与bitset 对象相同的位模式. to_ulong() // 返回unsigned long to_ullong() //返回unsigned ...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 类型
1. 定义 将一些数据组合成单一对象(类似pair) tuple支持的操作 操作 解释 tuple<T1, T2, -, Tn> t; t是一个tuple,成员数为n,第i个成员的类型是T ...
最新文章
- GitHub标星1.2w+,Chrome最天秀的插件都在这里
- 亚马逊机器学习服务:深入研究AWS SageMaker
- Django 使用celery任务队列的配置
- as安装过程中gradle_重新认识AndroidStudio和Gradle,这些都是我们应该知道的
- 编码和解码、调制与解调
- 阿里云消息队列 2021 新功能新特性重要里程碑
- 关于JUnit5 你必须知道的(二)JUnit 5的新特性
- 在程序里面(服务器端)调用Winrar压缩文件的方法?另寻求一条语句转换的方法。vb.net到C#。...
- python中的 同步与异步 互斥锁 和 死锁
- 洛谷P1079 Vigenère 密码
- 牛B装备 XSS 漏洞利用工具[使用教程]
- Apache编译注释(二)
- PIFA-平面倒F天线[搬运]
- 纸牌游戏程序设计要点(C语言)
- mac访问服务器文件有把锁,mac文件被锁定怎么解决 mac解除文件锁定
- 单片机万年历阴阳历c语言,自己制作的单片机万年历 程序+原理图
- 40行Python代码,实现卷积特征可视化
- MySQL日志 - Error Log错误日志
- log4的配置和使用
- 卡尔卡西25首练习曲简析-音阶与音程训练
热门文章
- 对学校的希望和寄语_家长对孩子的期望寄语精选
- python设置坐标轴刻度值字体大小_python 设置xlabel,ylabel 坐标轴字体大小,字体类型...
- python里的os模块_python中os模块再回顾
- java static method_java static关键字静态方法详解,静态方法实例分享
- 专家解读 | 数据中心,从“电老虎”走向“数字经济发动机”
- 三伏天到了,记得为数据中心降降温
- NLP:GLUE和SuperGLUE基准的简介、任务分类、使用方法之详细攻略
- Dataset之babyboom.dat:babyboom.dat数据集的简介、安装、使用方法之详细攻略
- 成功解决AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘?
- 如何快速掌握Pandas