std::poisson_distribution (3) Linux Manual Page
std::poisson_distribution – std::poisson_distribution
Synopsis
Defined in header<random>
template <class IntType = int>
(since C++ 11)
class poisson_distribution;
Produces random non-negative integer values i, distributed according to discrete probability function:
\(P(i | \mu) = \frac{e^{-\mu}\mu^i}{i!}\)P(i|μ) =
The value obtained is the probability of exactly i occurrences of a random event if the expected, mean number of its occurrence under the same conditions (on the same time/space interval) is μ.
std::poisson_distribution satisfies RandomNumberDistribution
Template parameters
IntType – The result type generated by the generator. The effect is undefined if 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 the type of the parameter set, see RandomNumberDistribution.
Member functions
constructor (public member function)
reset (public member function)
Generation
operator() (public member function)
Characteristics
mean (public member function)
param (public member function)
min (public member function)
max (public member function)
Non-member functions
operator== (function)
operator!=
operator<< (function template)
operator>>
Example
// Run this code
#include <iostream>
#include <iomanip>
#include <string>
#include <map>
#include <random>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
// if an event occurs 4 times a minute on average
// how often is it that it occurs n times in one minute?
std::poisson_distribution<> d(4);
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';
}
}
Output:
External links
Weisstein,_Eric_W._"Poisson_Distribution." From MathWorld–A Wolfram Web Resource.
