C/C++基础----随机数分布和随机数引擎
随机数分布
除了伯努利分布,其他都是模板,接收单个类型参数,指出分布生成的结果类型。
表示分布生成浮点数,float、double或long double
表示要求一个整型类型,不包括bool或任何char类型
整型分布默认int,浮点默认double
范围都是包含的
均匀分布
uniform_int_distribution<IntT> u(m, n);
uniform_real_distribution<RealT> u(m, n);
m默认0,n默认IntT对象可以表示的最大值;m默认0.0,n默认1.0
伯努利分布
Bernoulli_distribution b(p);//以概率p生成true,默认0.5
Bernoulli_distribution<IntT> b(t, p);//分布的采样大小为整型值t。t默认1,p默认0.5
geometric_distribution<IntT> g(p);//每次试验成功概率为p,默认0.5
negative_binomial_distribution<IntT> nb(k, p);//k次试验成功概率为p。k默认1,p默认0.5
泊松分布
poisson_distribution<IntT> p(x);//均值为double值x
exponential_distribution<RealT> e<lam);//指数分布,lambda浮点值,默认1.0
gamma_distribution<RealT> g(a, b);//形状参数为a,尺度参数为b,默认均为1.0
weibull_distribution<RealT> w(a, b);// 形状参数为a,尺度参数为b,默认均为1.0
extrme_value_distribution<RealT> e(a, b);//a的默认值为0.0,b默认1.0
正态分布
normal_distribution<RealT> n(m, s);//均值m,标准差s;默认0.0,1.0
lognormal_distribution<RealT> ln(m, s);//
chi_squared_distribution<RealT> c(x);//自由度x,默认1.0
cauchy_distribution<RealT> c(a, b);//位置参数a和尺度参数b默认分别0.0,1.0
fisher_f_distribution<RealT> f(m, n);//自由度为m和n,默认值均为1
student_t_distribution<RealT> s(n);//自由度为n,默认值1
抽样分布
discrete_distribution<IntT> d(i, j);
discrete_distribution<IntT> d(il);
i和j是权重序列的输入迭代器,il是权重的花括号列表。权重必须能转换为double
piecewise_constant_distribution<RealT> pc(b, e,w);//b e w输入迭代器
piecewise_linear_distribution<RealT> pc(b, e,w);//b e w输入迭代器
随机数引擎
标准库定义了3个引擎类和3个引擎适配器类,都是模板
default_random_engine
来自其他引擎类型的类型别名,目的是用于大多数情况
linear_congruential_engine
minstd_rand0的乘数为16807,模为2147483647,增量为0
minstd_rand0的乘数为48271,模为2147483647,增量为0
mersenne_twister_engine
mt19937为32位无符号梅森旋转生成器
mt19937_64为64位无符号梅森旋转生成器
subtract_with_carry_engine
ranlux24_base为32位无符号借位减法生成器
ranlux48_base为64位无符号借位减法生成器
discard_block_engine
引擎适配器,将其底层引擎的结果丢弃。用要使用的底层引擎、块大小和旧块大小来参数化
ranlux24使用ranlux24_base引擎,块大小223,旧块23
ranlux48使用ranlux48_base引擎,块大小389,旧块11
independent_bits_engine
引擎适配器,生成指定位数的随机数。用要使用的底层引擎、结果的位数以及保存生成的二进制位的无符号整型类型来参数化。指定位数必须小于指定的无符号类型所能保存的位数。
shuffle_order_engine
引擎适配器,返回的就是底层引擎生成的数,但返回的顺序不同。用要使用的底层引擎和要混洗的元素数目来参数化。
knuth_b使用minstd_rand0和表达小256
C/C++基础----随机数分布和随机数引擎的更多相关文章
- C++11--随机数引擎和随机数分布<random>
/* 随机数引擎: * 有状态的随机数发生器,生成在预定义的最大小值之间的随机数 * 不是真正的随机数--伪随机 */ int main () { std::default_random_engine ...
- Matlab 高斯分布 均匀分布 以及其他分布 的随机数
Matlab 高斯分布 均匀分布 以及其他分布 的随机数 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布 ...
- rvs产生服从指定分布的随机数 pdf概率密度函数 cdf累计分布函数 ppf 分位点函数
统计工作中几个常用用法在python统计函数库scipy.stats的使用范例. 正态分布以正态分布的常见需求为例了解scipy.stats的基本使用方法. 1.生成服从指定分布的随机数 norm.r ...
- Java入门:基础算法之产生随机数
本程序演示使用Random类的呢想tInt()方法产生随机数. /* Program: 随机数发生器 * Written by: 理工云课堂 * Input: None * Output: 0 到20 ...
- 《java入门第一季》之HashSet小案例:获取10个1至20的随机数,要求随机数不能重复
这是基于HashSet集合的唯一性. /* * 编写一个程序,获取10个1至20的随机数,要求随机数不能重复. * * 分析: * A:创建随机数对象 * B:创建一个HashSet集合 ...
- 基于docker 如何部署surging分布式微服务引擎
1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ...
- js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();)
js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();) ...
- Java基础(9):Java生成随机数一定范围内的数的一个典型例子
题目:编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组 note: 通过 (int)(Math.random() * 100) 生成 ...
- js生成[n,m]的随机数,js如何生成随机数,javascript随机数Math.random()
一.预备知识 Math.ceil(); //向上取整. Math.floor(); //向下取整. Math.round(); //四舍五入. Math.random(); //0.0 ~ 1 ...
随机推荐
- 无根树同构_hash
先贴上地址 https://vjudge.net/problem/HDU-5732 判断有根树同构: 1. 直接用括号最小表示法 2. 利用括号最小表示法的思想进行hash 判断无根树同构: 1. 找 ...
- 利用sql语句进行增删改查
1.查询 函数:raw(sql语句) 语法:Entry.objects.raw(sql) 返回:QuerySet 2.增删改 from django.db import connection def ...
- [LeetCode&Python] Problem 237. Delete Node in a Linked List
Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...
- (22)bootstrap 初识 + Font Awesome(字体图标库)
bootstrap作用就是简化布局 bootstrap是基于JQ的,所以内部代码使用的是jq语法 所以要使用bs,必须先倒入 1.head标签内倒入bs的css文件 <link rel=&qu ...
- WordPress博客插入直播源
方法很简单: 找到直播源地址,撰写新文章(可视化切换到文本模式下)插入直播源地址 代码:<iframe id="tv_iframe" width="880" ...
- CH4912 Meteors
题意 4912 Meteors 0x49「数据结构进阶」练习 描述 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第 ...
- Chrome——F12 谷歌开发者工具详解
我们这里介绍主要的几块:Console.Source.Network Console 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的, ...
- TypeScript 之 书写.d.ts文件
https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Writing%20Definition%20Files.html ...
- oauth 2.0 授权流程图
1.授权码模式(authorization code) 7 步 后面 拿到授权码以后,就是向 资源服务器请求资源了. 2.简化模式(implicit): 在上面的第4 步的返回中,已经包含了 acc ...
- Elastic Story(一)
关于_all 当索引一个文档的时候,Elasticsearch 取出所有字段的值拼接成一个大的字符串,作为 _all 字段进行索引.例如,当索引这个文档时: { "tweet": ...