A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/random/negative_binomial_distribution/ below:

class template

<random>

std::negative_binomial_distribution
template <class IntType = int> class negative_binomial_distribution;

Negative binomial distribution

Random number distribution that produces integers according to a negative binomial discrete distribution (also known as Pascal distribution), which is described by the following probability mass function:

This distribution produces random integers where each value represents the number of unsuccessful trials before k successful trials happen in a sequence of trials, each with a probability of success equal to p.

To produce a random value following this distribution, call its member function operator().



Template parameters
IntType
An integer type. Aliased as member type result_type.
By default, this is int.

Member types The following aliases are member types of negative_binomial_distribution:

member type definition notes result_type The first template parameter (IntType) The type of the numbers generated (defaults to int) param_type not specified The type returned by member param.


Member functions
(constructor)
Construct negative binomial distribution (public member function)
operator()
Generate random number (public member function)
reset
Reset distribution (public member function)
param
Distribution parameters (public member function)
min
Minimum value (public member function)
max
Maximum value (public member function)

Distribution parameters
k
Distribution parameter k (public member function)
p
Distribution parameter p (public member function)

Non-member functions
operator<<
Insert into output stream (function template)
operator>>
Extract from input stream (function template)
relational operators
Relational operators (function template)

Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// negative_binomial_distribution
#include <iostream>
#include <random>

int main()
{
  const int nrolls = 10000; // number of experiments
  const int nstars = 100;   // maximum number of stars to distribute

  std::default_random_engine generator;
  std::negative_binomial_distribution<int> distribution(3,0.5);

  int p[10]={};

  for (int i=0; i<nrolls; ++i) {
    int number = distribution(generator);
    if (number<10) ++p[number];
  }

  std::cout << "negative_binomial_distribution (k=3,p=0.5):" << std::endl;
  for (int i=0; i<10; ++i)
    std::cout << i << ": " << std::string(p[i]*nstars/nrolls,'*') << std::endl;

  return 0;
}

Possible output:
negative_binomial_distribution (k=3,p=0.5):
0: ************
1: *******************
2: *****************
3: ****************
4: ***********
5: *******
6: *****
7: ***
8: **
9: *


See also
bernoulli_distribution
Bernoulli distribution (class)
binomial_distribution
Binomial distribution (class template)
geometric_distribution
Geometric distribution (class template)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4