26 Numerics library [numerics]

26.6 Random number generation [rand]

26.6.8 Random number distribution class templates [rand.dist]

26.6.8.3 Bernoulli distributions [rand.dist.bern]

26.6.8.3.1 Class bernoulli_­distribution [rand.dist.bern.bernoulli]

A bernoulli_­distribution random number distribution produces bool values b distributed according to the discrete probability function
class bernoulli_distribution {
public:
  // types
  using 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();

  // generating functions
  template<class URBG>
    result_type operator()(URBG& g);
  template<class URBG>
    result_type operator()(URBG& g, const param_type& parm);

  // property functions
  double p() const;
  param_type param() const;
  void param(const param_type& parm);
  result_type min() const;
  result_type max() const;
};
explicit bernoulli_distribution(double p);
Requires: .
Effects: Constructs a bernoulli_­distribution object; p corresponds to the parameter of the distribution.
double p() const;
Returns: The value of the p parameter with which the object was constructed.