 st8b7c:f320:99b9:690f:4595:cd17:293a:c069normal_distribution    Defined in header <random>         template< class RealType = double >
class normal_distribution;
    (since C++11)    Generates random numbers according to the Normal (or Gaussian) random number distribution. It is defined as:   \(\small{f(x;\mu,\sigma)}=\frac{1}{\sigma\sqrt{2\pi} }\exp{(-\frac{1}{2}{(\frac{x-\mu}{\sigma})}^2)}\)f(x; μ,σ) =
1/σ√2π exp⎛⎜⎝-1/2 ⎛⎜⎝x-μ/σ⎞⎟⎠2⎞⎟⎠ Here \(\small\mu\)μ is the mean and \(\small\sigma\)σ is the standard deviation (stddev).
st8b7c:f320:99b9:690f:4595:cd17:293a:c069normal_distribution satisfies all requirements of RandomNumberDistribution.
 Template parameters    RealType   -   The result type generated by the generator. The effect is undefined if this is not one of float, double, or long double. 

  Member types    Member type   Definition 
   result_type(C++11)   RealType 
   param_type(C++11)   the type of the parameter set, see RandomNumberDistribution. 
   Member functions     (constructor)
(C++11)   constructs new distribution  (public member function) 
    reset
(C++11)   resets the internal state of the distribution  (public member function) 
     Generation  
    operator()
(C++11)   generates the next random number in the distribution  (public member function) 
     Characteristics  
    meanstddev   returns the distribution parameters  (public member function) 
    param
(C++11)   gets or sets the distribution parameter object  (public member function) 
    min
(C++11)   returns the minimum potentially generated value  (public member function) 
    max
(C++11)   returns the maximum potentially generated value  (public member function) 
   Non-member functions     operator==operator!=
(C++11)(C++11)(removed in C++20)   compares two distribution objects  (function) 
    operator<<operator>>
(C++11)   performs stream input and output on pseudo-random number distribution  (function template) 
   Example  #include <iostream>
#include <iomanip>
#include <string>
#include <map>
#include <random>
#include <cmath>
int main()
{
    st8b7c:f320:99b9:690f:4595:cd17:293a:c069random_device rd{};
    st8b7c:f320:99b9:690f:4595:cd17:293a:c069mt19937 gen{rd()};
 
    // values near the mean are the most likely
    // standard deviation affects the dispersion of generated values from the mean
    st8b7c:f320:99b9:690f:4595:cd17:293a:c069normal_distribution<> d{5,2};
 
    st8b7c:f320:99b9:690f:4595:cd17:293a:c069map<int, int> hist{};
    for(int n=0; n<10000; ++n) {
        ++hist[st8b7c:f320:99b9:690f:4595:cd17:293a:c069round(d(gen))];
    }
    for(auto p : hist) {
        st8b7c:f320:99b9:690f:4595:cd17:293a:c069cout << st8b7c:f320:99b9:690f:4595:cd17:293a:c069setw(2)
                  << p.first << ' ' << st8b7c:f320:99b9:690f:4595:cd17:293a:c069string(p.second/200, '*') << '\n';
    }
} Possible output:
-2 
-1 
 0 
 1 *
 2 ***
 3 ******
 4 ********
 5 **********
 6 ********
 7 *****
 8 ***
 9 *
10 
11 
12   External links 
 Weisstein, Eric W. "Normal Distribution." From MathWorld--A Wolfram Web Resource. 
 Normal Distribution. From Wikipedia. 
 

    
{'path': 'public/docs/cpp/numeric/random/normal_distribution.html', 'source': 'DevDocs.IO'}