std::normal_distribution
性病:正常[医]分布
Defined in header | | |
---|---|---|
template< class RealType = double > class normal_distribution; | | (since C++11) |
根据正态%28或高斯%29随机数分布定义为:F%28x;μ,σ%29=
一
*。
σⅩ2π
EXP
二次
二次
-1
*。
二
二次
二次
二次
X-μ
*。
σ
二次
二次
2
二次
二次
二次
这里μ是平均σ是标准差%28斯塔德夫
29%。
std::normal_distribution
满足…的所有要求RandomNumberDistribution
...
模板参数
RealType | - | The result type generated by the generator. The effect is undefined if this is not one of float, double, or long double. |
---|
成员类型
Member type | Definition |
---|---|
result_type | RealType |
param_type | the type of the parameter set, see RandomNumberDistribution. |
成员函数
(constructor) | constructs new distribution (public member function) |
---|---|
reset | resets the internal state of the distribution (public member function) |
世代
运算符%28%29在分布%28公共成员函数%29中生成下一个随机数。
特征
返回分布参数%28公共成员函数%29
Param获取或设置分布参数对象%28公共成员函数%29
min返回最小潜在生成值%28公共成员函数%29
MAX返回最大潜在生成值%28公共成员函数%29
非会员职能
operator==operator!= | compares two distribution objects (function) |
---|---|
operator<<operator>> | performs stream input and output on pseudo-random number distribution (function template) |
例
二次
#include <iostream>
#include <iomanip>
#include <string>
#include <map>
#include <random>
#include <cmath>
int main()
{
std::random_device rd;
std::mt19937 gen(rd()
// values near the mean are the most likely
// standard deviation affects the dispersion of generated values from the mean
std::normal_distribution<> d(5,2
std::map<int, int> hist;
for(int n=0; n<10000; ++n) {
++hist[std::round(d(gen))];
}
for(auto p : hist) {
std::cout << std::fixed << std::setprecision(1) << std::setw(2)
<< p.first << ' ' << std::string(p.second/200, '*') << '\n';
}
}
二次
产出:
二次
-2
-1
0
1 *
2 ***
3 ******
4 ********
5 **********
6 ********
7 *****
8 ***
9 *
10
11
12
二次
外部链接
- “正态分布”来自MathWorld的一个Wolfram Web资源。
- 正态分布维基百科的。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。