[rand.dist.bern.bernoulli]

# 29 Numerics library [[numerics]](./#numerics)

## 29.5 Random number generation [[rand]](rand#dist.bern.bernoulli)

### 29.5.9 Random number distribution class templates [[rand.dist]](rand.dist#bern.bernoulli)

#### 29.5.9.3 Bernoulli distributions [[rand.dist.bern]](rand.dist.bern#bernoulli)

#### 29.5.9.3.1 Class bernoulli_distribution [rand.dist.bern.bernoulli]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L4758)

A bernoulli_distribution random number distribution
produces bool values b distributed according to
the discrete probability function in Formula [29.4](#eq:rand.dist.bern.bernoulli)[.](#1.sentence-1)

P(b|p)={pÂ ifÂ b=true1âpÂ ifÂ b=false(29.4)

[ð](#lib:bernoulli_distribution_)

namespace std {class bernoulli_distribution {public:// typesusing result_type = bool; using param_type = *unspecified*; // constructors and reset functions bernoulli_distribution() : bernoulli_distribution(0.5) {}explicit bernoulli_distribution(double p); explicit bernoulli_distribution(const param_type& parm); void reset(); // equality operatorsfriend bool operator==(const bernoulli_distribution& x, const bernoulli_distribution& y); // generating functionstemplate<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functionsdouble p() const;
 param_type param() const; void param(const param_type& parm);
 result_type min() const;
 result_type max() const; // inserters and extractorstemplate<class charT, class traits>friend basic_ostream<charT, traits>&operator<<(basic_ostream<charT, traits>& os, const bernoulli_distribution& x); template<class charT, class traits>friend basic_istream<charT, traits>&operator>>(basic_istream<charT, traits>& is, bernoulli_distribution& x); };}

[ð](#lib:bernoulli_distribution,constructor)

`explicit bernoulli_distribution(double p);
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L4820)

*Preconditions*: 0 â¤ p â¤ 1[.](#2.sentence-1)

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L4824)

*Remarks*: p corresponds to the parameter of the distribution[.](#3.sentence-1)

[ð](#lib:p,bernoulli_distribution)

`double p() const;
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L4836)

*Returns*: The value of the p parameter
 with which the object was constructed[.](#4.sentence-1)
