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 ...
随机推荐
- Unity查找子物体的方式-怎么查找GameObject
Unity动态查找物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...
- 关于js 异步回调的一些方法
http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
- 监控页面后退前进,浏览器文档加载事件之pageshow、pagehide
https://www.cnblogs.com/milo-wjh/p/6811868.html http://www.runoob.com/jsref/event-onpageshow.html on ...
- CH4907 作诗
题意 4907 作诗 0x49「数据结构进阶」练习 描述 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗之后还要虐OI,于是SHY ...
- Using C++11 function & bind
The example of callback in C++11 is shown below. #include <functional> void MyFunc1(int val1, ...
- NYOJ 483 Nightmare 【广搜】+【无标记】
版权声明:长风原创 https://blog.csdn.net/u012846486/article/details/31032479 Nightmare 时间限制:1000 ms | 内存限制: ...
- PHP 获取上月,本月,近15天,近30天日期
<?php //echo $_SERVER['PHP_SELF']; //define('ROOT_PATH',str_replace($_SERVER['PHP_SELF'],'',str_r ...
- [转]HashMap,LinkedHashMap,TreeMap的区别
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复. Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很 ...
- oracle之 安装oracle指定jdk 或者如何解决提示框显示不全
在centos7下,安装oracle 11g. gnome的桌面.各个参数配置好后,运行runInstaller命令.此时弹出安装界面,在一次次点击[下一步]的时候,中间会弹出对话框,可是对话框显示不 ...
- webstorm版本2017.2开发stylus报错
style 部分声明的时候,要有lang和type属性. 前提是,已经npm安装了stylus,stylus-loader. <style lang='stylus' type='text/st ...