1 Cppreference随机数生成文档:《Pseudo-random number generation》

2 常见的类和函数

2.1 随机种子生成器:std::random_device

本质上是一个非确定随机数生成器

return:

unsigned int:生成非确定性的随机自然数。

Examples

初始化:

std::random_device rd;

调用:

rd()

2.2 随机序列生成器

2.2.1 默认随机数生成器:std::default_random_engine

其具体行为由编译器确定(implementation-defined);

return:

unsigned integer:生成随机自然数。

Application

  • 作为随机分布器的熵(分布混乱程度的度量值)

2.2.2 梅森缠绕器:std::mt19937

实际使用中,可以使用std::default_random_engine替代梅森缠绕器;

3 使用给定权重随机选择

#include <iostream>
#include <random>int main() {std::random_device rd; std::mt19937 gen(rd()); std::discrete_distribution<> d({10, 30, 60});for (int i = 0; i < 5; ++i) {int room_type = d(gen);switch (room_type){case 0:std::cout << "营地" << std::endl;break;case 1:std::cout << "普通副本" << std::endl;break;case 2:std::cout << "困难副本" << std::endl;break;}}
}

【C++学习笔记】随机数生成:#include <random>相关推荐

  1. 学习笔记——Kaggle_Digit Recognizer (Random Forest算法 Python实现)

    本文是个人学习笔记,该篇主要学习随机森林算法概念,并应用sklearn.ensemble.RandomForestClassifier算法包解决Kaggle入门级Digit Recognizer. 随 ...

  2. VB.NET学习笔记:使用Random类生成随机数(不重复、数字、字母)

    VB6.0升级到VB.NET后,发现随机数函数也发生了变化,在VB.NET中Random类是一种能够产生满足某些随机性统计需求的数字序列的伪随机数生成器. 在代码把光标定位到单词Random,点F1键 ...

  3. 『Python学习笔记』np.random.rand()函数和np.random.randn()函数

    目录 一. np.random.rand()函数 二. np.random.randn()函数 一. np.random.rand()函数 语法:np.random.rand(d0,d1,d2--dn ...

  4. Python入门学习笔记08(random模块)

    random 获取随机数的方法: random()返回一个随机的小于1的实数 uniform(x,y0)返回一个随机的指定区间的实数 randint(x,y)返回一个随机整数,开区间 randrang ...

  5. C语言基础入门学习笔记

    前言 我是一个初中生,过完暑假就是一个高一的学生了.在这个暑假里,我学习了韦东山老师和唐佐林老师的课程,所以我写下这个笔记来记录自己的成长历程. C语言基础入门学习笔记 格式 #include < ...

  6. OpenCV 4.0学习笔记

    OpenCV 4.0学习笔记 g++ //#include <opencv2/core.hpp> //#include <opencv2/imgproc.hpp> //#inc ...

  7. Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...

  8. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...

  9. 【C/C++学习笔记】C++11 random 随机数(TR1)

    C++11 前,我们使用 <stdlib.h> 中的 srand 初始化随机数种子,然后通过 rand() 获取随机数 #include <stdio.h> #include ...

最新文章

  1. oracle 11g goldengate DML单向复制测试环境搭建
  2. linux dry run,dry run
  3. 主程序与子程序不在同一程序模块中_分享:宏程序和子程序的应用
  4. css3 transform matrix 深入理解
  5. SQLi LABS Less-36
  6. ajax提交与上传文件同步
  7. android scrollview 动态添加,使用Scrollview和LinearLayout动态添加布局
  8. 无人驾驶 ai算法_质疑AI是否具有意图以及这对无人驾驶汽车意味着什么
  9. node文件服务器,nodejs一个简单的文件服务器的创建方法
  10. 松下服务器没显示,松下Panasonic伺服驱动器没有显示维修
  11. Java证件照剪切_GitHub - caoqiang250/idPicCut: 对原始证件照进行压缩,剪裁,换背景,(美颜)...
  12. 朱晔的互联网架构实践心得S2E7:漫谈平台架构的工作(基础架构、基础服务、基础平台、基础中间件等等)
  13. 认识计算机重点知识,认识计算机教案
  14. PS标尺参考线拖不准问题
  15. 企业邮箱是什么?企业邮箱和个人邮箱的区别在哪里
  16. TF卡格式化了怎么办?tf卡数据恢复,看这3个方法
  17. 论文阅读笔记:A Two-Step Approach for Event Factuality Identification
  18. c35是什么意思_混凝土标号怎么来的?C30_C25_C35_都是什么意思
  19. 如何自学Axure(0基础入门教程)
  20. 【FPGA】8B/10B编码--转自wiki百科

热门文章

  1. (81)Part21-阿里云VOD-01-视频点播简介
  2. 纯CSS手风琴图片层叠hover展开
  3. ROCKOUT软件测试简历设计,Outward Bound的培训师简历列表
  4. C/C++ linux 时间戳
  5. Java实现冒泡排序和选择排序
  6. vertx创建http服务
  7. 如何通过学校系统漏洞注册到 @edu.cn 邮箱账号?...
  8. Python创建虚拟环境
  9. mysql 离散度_【MySQL】索引原理(四):创建索引的几点建议,列的离散度,前缀索引...
  10. iOS——内购支付详解后台操作(一)