home | help
std::bernou...distribution(3)  C++ Standard Libary std::bernou...distribution(3)

NAME
     std::bernoulli_distribution - std::bernoulli_distribution

Synopsis
	Defined in header <random>
	class bernoulli_distribution;  (since C++11)

	Produces  random  boolean  values, according to the discrete probability
     function. The
	probability of true is

	P(b|p) =a<section>
	a"
									    a(C)p,
     if b is true
	1 a p, if b is false

	std::bernoulli_distribution satisfies RandomNumberDistribution.

Member types
	Member type	    Definition
	result_type (C++11) bool
	param_type (C++11)  the type of the parameter set, see	RandomNumberDis-
     tribution.

Member functions
	constructor   constructs new distribution
	(C++11)       (public member function)
	reset	      resets the internal state of the distribution
	(C++11)       (public member function)

Generation
	operator()    generates the next random number in the distribution
	(C++11)       (public member function)

Characteristics
	p	       returns the p distribution parameter (probability of gen-
     erating true)
	(C++11)       (public member function)
	param	      gets or sets the distribution parameter object
	(C++11)       (public member function)
	min	      returns the minimum potentially generated value
	(C++11)       (public member function)
	max	      returns the maximum potentially generated value
	(C++11)       (public member function)

Non-member functions
	operator==
	operator!=		  compares two distribution objects
	(C++11) 		  (function)
	(C++11)(removed in C++20)
	operator<<		  performs stream input and  output  on  pseudo-
     random number
	operator>>		  distribution
	(C++11) 		  (function template)

Example
     // Run this code

      #include <iomanip>
      #include <iostream>
      #include <map>
      #include <random>
      #include <string>

      int main()
      {
	  std::random_device rd;
	  std::mt19937 gen(rd());
	  // give "true" 1/4 of the time
	  // give "false" 3/4 of the time
	  std::bernoulli_distribution d(0.25);

	  std::map<bool, int> hist;
	  for (int n = 0; n < 10000; ++n)
	      ++hist[d(gen)];

	  std::cout << std::boolalpha;
	  for (auto const& [key, value] : hist)
	      std::cout << std::setw(5) << key << ' '
			<< std::string(value / 500, '*') << '\n';
      }

Possible output:
      false ***************
       true ****

External links
	Weisstein,  Eric W. "Bernoulli Distribution." From MathWorld a A Wolfram
     Web
	Resource.

http://cppreference.com 	   2024.06.10	   std::bernou...distribution(3)

home | help