随机数分布

除了伯努利分布,其他都是模板,接收单个类型参数,指出分布生成的结果类型。

表示分布生成浮点数,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++基础----随机数分布和随机数引擎的更多相关文章

  1. C++11--随机数引擎和随机数分布<random>

    /* 随机数引擎: * 有状态的随机数发生器,生成在预定义的最大小值之间的随机数 * 不是真正的随机数--伪随机 */ int main () { std::default_random_engine ...

  2. Matlab 高斯分布 均匀分布 以及其他分布 的随机数

    Matlab 高斯分布 均匀分布 以及其他分布 的随机数 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布 ...

  3. rvs产生服从指定分布的随机数 pdf概率密度函数 cdf累计分布函数 ppf 分位点函数

    统计工作中几个常用用法在python统计函数库scipy.stats的使用范例. 正态分布以正态分布的常见需求为例了解scipy.stats的基本使用方法. 1.生成服从指定分布的随机数 norm.r ...

  4. Java入门:基础算法之产生随机数

    本程序演示使用Random类的呢想tInt()方法产生随机数. /* Program: 随机数发生器 * Written by: 理工云课堂 * Input: None * Output: 0 到20 ...

  5. 《java入门第一季》之HashSet小案例:获取10个1至20的随机数,要求随机数不能重复

    这是基于HashSet集合的唯一性. /*  * 编写一个程序,获取10个1至20的随机数,要求随机数不能重复.  *   * 分析:  * A:创建随机数对象  * B:创建一个HashSet集合 ...

  6. 基于docker 如何部署surging分布式微服务引擎

    1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ...

  7. js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();)

    js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();) ...

  8. Java基础(9):Java生成随机数一定范围内的数的一个典型例子

    题目:编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组 note: 通过 (int)(Math.random() * 100) 生成 ...

  9. js生成[n,m]的随机数,js如何生成随机数,javascript随机数Math.random()

    一.预备知识 Math.ceil();  //向上取整. Math.floor();  //向下取整. Math.round();  //四舍五入. Math.random();  //0.0 ~ 1 ...

随机推荐

  1. 无根树同构_hash

    先贴上地址 https://vjudge.net/problem/HDU-5732 判断有根树同构: 1. 直接用括号最小表示法 2. 利用括号最小表示法的思想进行hash 判断无根树同构: 1. 找 ...

  2. 利用sql语句进行增删改查

    1.查询 函数:raw(sql语句) 语法:Entry.objects.raw(sql) 返回:QuerySet 2.增删改 from django.db import connection def ...

  3. [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 ...

  4. (22)bootstrap 初识 + Font Awesome(字体图标库)

    bootstrap作用就是简化布局 bootstrap是基于JQ的,所以内部代码使用的是jq语法 所以要使用bs,必须先倒入 1.head标签内倒入bs的css文件  <link rel=&qu ...

  5. WordPress博客插入直播源

    方法很简单: 找到直播源地址,撰写新文章(可视化切换到文本模式下)插入直播源地址 代码:<iframe id="tv_iframe" width="880" ...

  6. CH4912 Meteors

    题意 4912 Meteors 0x49「数据结构进阶」练习 描述 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第 ...

  7. Chrome——F12 谷歌开发者工具详解

    我们这里介绍主要的几块:Console.Source.Network Console 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的, ...

  8. TypeScript 之 书写.d.ts文件

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Writing%20Definition%20Files.html ...

  9. oauth 2.0 授权流程图

    1.授权码模式(authorization code) 7 步  后面 拿到授权码以后,就是向 资源服务器请求资源了. 2.简化模式(implicit): 在上面的第4 步的返回中,已经包含了 acc ...

  10. Elastic Story(一)

    关于_all 当索引一个文档的时候,Elasticsearch 取出所有字段的值拼接成一个大的字符串,作为 _all 字段进行索引.例如,当索引这个文档时: { "tweet": ...