home | help
std::binomial_distribution(3)  C++ Standard Libary std::binomial_distribution(3)

NAME
     std::binomial_distribution - std::binomial_distribution

Synopsis
	Defined in header <random>
	template< class IntType = int >  (since C++11)
	class binomial_distribution;

	Produces  random non-negative integer values i, distributed according to
     discrete
	probability function:

	\(P(i|t,p) = \binom{t}{i} \cdot p^i \cdot (1-p)^{t-i}\)P(i|t,p) =a
	a
	at
	ia
	a
	a  A. pi
	A. (1 a p)tai

	The value obtained is the number of successes in a sequence of t  yes/no
     experiments,
	each of which succeeds with probability p.

	std::binomial_distribution satisfies RandomNumberDistribution.

Template parameters
		  The  result type generated by the generator. The effect is un-
     defined if
	IntType - this is not one of  short,  int,  long,  long  long,	unsigned
     short, unsigned
		  int, unsigned long, or unsigned long long.

Member types
	Member type	    Definition
	result_type (C++11) IntType
	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 distribution parameters
	t	      (public member function)
	(C++11)
	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
	Plot  of binomial distribution with probability of success of each trial
     exactly 0.5,
	illustrating the relationship with the pascal triangle	(the  probabili-
     ties that none,
	1, 2, 3, or all four of the 4 trials will be successful in this case are
     1:4:6:4:1).

     // Run this code

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

      int main()
      {
	  std::random_device rd;
	  std::mt19937 gen(rd());
	  // perform 4 trials, each succeeds 1 in 2 times
	  std::binomial_distribution<> d(4, 0.5);

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

	  for (auto const& [x, y] : hist)
	      std::cout << x << ' ' << std::string(y / 100, '*') << '\n';
      }

Possible output:
      0 ******
      1 ************************
      2 *************************************
      3 *************************
      4 ******

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

http://cppreference.com 	   2024.06.10	   std::binomial_distribution(3)

home | help