Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::binomial_distribution(3) C++ Standard Libarystd::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) =

		  t
		  i

		    pi
		   (1  p)ti

	  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
       undefined 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	    IntType
	  param_type(C++11)  the  type	of  the	 parameter set,	see RandomNum-
       berDistribution.

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)
	  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	proba-
       bilities	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 <iostream>
	#include <iomanip>
	#include <string>
	#include <map>
	#include <random>

	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 p	: hist)	{
		std::cout << p.first <<	' '
			  << std::string(p.second/100, '*') << '\n';
	    }
	}

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

External links
	  Weisstein,  Eric  W. "Binomial Distribution."	From MathWorld--A Wol-
       fram Web	Resource.

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::binomial_distribution&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help