“cpp/numeric/random/negative binomial distribution”的版本间的差异
来自cppreference.com
小 (Fix some translations) |
|||
第1行: | 第1行: | ||
− | |||
{{cpp/title|negative_binomial_distribution}} | {{cpp/title|negative_binomial_distribution}} | ||
{{cpp/numeric/random/negative_binomial_distribution/navbar}} | {{cpp/numeric/random/negative_binomial_distribution/navbar}} | ||
− | {{ddcl | header=random | | + | {{ddcl | header=random | sincec++11 | 1= |
template< class IntType = int > | template< class IntType = int > | ||
class negative_binomial_distribution; | class negative_binomial_distribution; | ||
}} | }} | ||
− | + | 产生随机非负整数值 {{math|i}} 离散概率函数: | |
− | :{{ | + | :{{|P(i{{!}}k,p) {{=}}{{mparen|(|)|k + i − 1|i}} · p{{su|p=k}} · (1 − p){{su|p=i}}}} |
− | + | 该值表示一系列独立 是/否试验 失败次数(每 成功概率 {{math|p}} ) | |
− | === | + | |
+ | |||
+ | === | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 员类型=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc hitem | | + | {{dsc hitem | 员类型| }} |
{{dsc | {{tt|result_type}} | {{c|IntType}}}} | {{dsc | {{tt|result_type}} | {{c|IntType}}}} | ||
− | {{ | + | {{param_type}} |
{{dsc end}} | {{dsc end}} | ||
第25行: | 第31行: | ||
{{dsc inc | cpp/numeric/random/distribution/dsc reset | negative_binomial_distribution}} | {{dsc inc | cpp/numeric/random/distribution/dsc reset | negative_binomial_distribution}} | ||
− | {{dsc h2 | | + | {{dsc h2 | }} |
{{dsc inc | cpp/numeric/random/distribution/dsc operator() | negative_binomial_distribution}} | {{dsc inc | cpp/numeric/random/distribution/dsc operator() | negative_binomial_distribution}} | ||
− | {{dsc h2 | | + | {{dsc h2 |特 }} |
− | {{dsc inc | cpp/numeric/random/ | + | {{dsc inc | cpp/numeric/random//dsc | negative_binomial_distribution}} |
− | + | ||
{{dsc inc | cpp/numeric/random/distribution/dsc param | negative_binomial_distribution}} | {{dsc inc | cpp/numeric/random/distribution/dsc param | negative_binomial_distribution}} | ||
{{dsc inc | cpp/numeric/random/distribution/dsc min | negative_binomial_distribution}} | {{dsc inc | cpp/numeric/random/distribution/dsc min | negative_binomial_distribution}} | ||
第55行: | 第60行: | ||
std::random_device rd; | std::random_device rd; | ||
std::mt19937 gen(rd()); | std::mt19937 gen(rd()); | ||
− | // Pat | + | // Pat |
− | // | + | // 75% |
− | // | + | // 5 |
std::negative_binomial_distribution<> d(5, 0.75); | std::negative_binomial_distribution<> d(5, 0.75); | ||
第84行: | 第89行: | ||
===外部链接=== | ===外部链接=== | ||
− | + | [http://mathworld.wolfram.com/NegativeBinomialDistribution.html Weisstein, Eric W. ] MathWorld--A Wolfram Web Resource | |
− | + | deenesfritjaptru | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
2017年10月10日 (二) 19:31的版本
在标头 <random> 定义
|
||
template< class IntType = int > class negative_binomial_distribution; |
(C++11 起) | |
产生随机非负整数值 i ,其分布按照离散概率函数:
- P(i|k,p) =⎛
⎜
⎝k + i − 1
i⎞
⎟
⎠ · pk
· (1 − p)i
该值表示一系列独立的是/否试验在准确出现 k 次成功前的失败次数(每次成功概率为 p )。
std::negative_binomial_distribution
满足{concept|RandomNumberDistribution|随机数分布}}。
目录 |
模板形参
IntType | - | 生成器所生成的结果类型。如果它不是 short、int、long、long long、unsigned short、unsigned int、unsigned long 或 unsigned long long 之一,那么效果未定义。 |
成员类型
成员类型 | 定义 |
result_type
|
IntType |
param_type (C++11)
|
参数集的类型,见随机数分布 (RandomNumberDistribution) 。 |
成员函数
(C++11) |
构造新分布 (公开成员函数) |
(C++11) |
重置分布的内部状态 (公开成员函数) |
生成 | |
(C++11) |
生成分布中的下个随机数 (公开成员函数) |
特征 | |
(C++11) |
返回分布参数 (公开成员函数) |
(C++11) |
获取或设置随机参数对象 (公开成员函数) |
(C++11) |
返回潜在生成的最小值 (公开成员函数) |
(C++11) |
返回潜在生成的最大值 (公开成员函数) |
非成员函数
(C++11)(C++11)(C++20 移除) |
比较两个分布对象 (函数) |
(C++11) |
执行伪随机数分布的流输入和输出 (函数模板) |
示例
运行此代码
#include <iostream> #include <iomanip> #include <string> #include <map> #include <random> int main() { std::random_device rd; std::mt19937 gen(rd()); // Pat 挨家挨户卖饼干 // 在每家,有 75% 的几率卖出一盒 // 试问她在卖出 5 盒前要卖多少次? std::negative_binomial_distribution<> d(5, 0.75); std::map<int, int> hist; for(int n=0; n<10000; ++n) { ++hist[d(gen)]; } for(auto p : hist) { std::cout << p.first << ' ' << std::string(p.second/100, '*') << '\n'; } }
输出:
0 *********************** 1 ***************************** 2 ********************** 3 ************* 4 ****** 5 *** 6 * 7 8 9 10 11
外部链接
Weisstein, Eric W. “负二项分布。”来自 MathWorld--A Wolfram Web Resource 。