# 28 Numerics library [numerics]

## 28.5 Random number generation [rand]

### 28.5.9 Random number distribution class templates [rand.dist]

#### 28.5.9.5.1 Class template normal_distribution[rand.dist.norm.normal]

A normal_distribution random number distribution produces random numbers x distributed according to the probability density function
The distribution parameters μ and σ are also known as this distribution's mean and standard deviation.
namespace std { template<class RealType = double> class normal_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructors and reset functions normal_distribution() : normal_distribution(0.0) {} explicit normal_distribution(RealType mean, RealType stddev = 1.0); explicit normal_distribution(const param_type& parm); void reset(); // equality operators friend bool operator==(const normal_distribution& x, const normal_distribution& y); // generating functions template<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functions RealType mean() const; RealType stddev() const; param_type param() const; void param(const param_type& parm); result_type min() const; result_type max() const; // inserters and extractors template<class charT, class traits> friend basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const normal_distribution& x); template<class charT, class traits> friend basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, normal_distribution& x); }; }
```explicit normal_distribution(RealType mean, RealType stddev = 1.0); ```
Preconditions: .
Remarks: mean and stddev correspond to the respective parameters of the distribution.
```RealType mean() const; ```
Returns: The value of the mean parameter with which the object was constructed.
```RealType stddev() const; ```
Returns: The value of the stddev parameter with which the object was constructed.