在线文档教程
C++
数字 | Numerics

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 typeDefinition
result_typeRealType
param_typethe type of the parameter set, see RandomNumberDistribution.

成员函数

(constructor)constructs new distribution (public member function)
resetresets 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

二次

外部链接

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cpPreference.com/w/cpp/数值/随机/正常[医]分布