Pseudo-random number generation
From Cppreference
Contents |
[edit] Random number engines
Random number engines generate pseudo-random numbers using seed data as entropy source. Several different classes of pseudo-random number generation algorithms are implemented as templates that can be customized.
Defined in header
<random> | |||
|
implements linear congruential algorithm (class template) |
||
|
implements Mersenne twister algorithm (class template) |
||
|
implements subtract with carry (a lagged Fibonacci) algorithm (class template) |
[edit] Random number engine adaptors
Random number engine adaptors generate pseudo-random numbers using another random number engine as entropy source.
Defined in header
<random> | |||
|
discards some output of a random number engine (class template) |
||
|
packs the output of a random number engine into blocks of specified number of bits (class template) |
||
|
delivers the output of a random number engine in different order (class template) |
[edit] Predefined random number generators
Several specific popular algorithms are predefined.
Defined in header
<random> | |
Type | Definition |
minstd_rand0 | linear_congruential_engine<uint_fast32_t, 16807, 0, 2147483647> |
minstd_rand | linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647> |
mt19937 | mersenne_twister_engine<uint_fast32_t, 32, 624, 397, 31, 0x9908b0df, 11, |
mt19937_64 | mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9, 29, |
ranlux24_base | subtract_with_carry_engine<uint_fast32_t, 24, 10, 24> |
ranlux48_base | subtract_with_carry_engine<uint_fast64_t, 48, 5, 12> |
ranlux24 | discard_block_engine<ranlux24_base, 223, 23> |
ranlux48 | discard_block_engine<ranlux48_base, 389, 11> |
knuth_b | shuffle_order_engine<minstd_rand0, 256> |
default_random_engine | implementation-defined |
|
non-deterministic random number generator using hardware entropy source (class) |
[edit] Random number distributions
Random number distributions are post-process the output of an random number engine or adaptors in such a way, that resulting output fits into some statistical probability distribution.
Defined in header
<random> | |||
Uniform distributions | |||
|
evenly distributes integer random numbers across a range (class template) |
||
|
evenly distributes floating-point random numbers across a range (class template) |
||
|
evenly distributes floating-point random numbers of given precision across [0, 1) (function template) |
||
Bernoulli distributions | |||
|
Produces bool values on a Bernoulli distribution. (class) |
||
|
Produces integer values on a binomial distribution. (class template) |
||
|
Produces integer values on a negative binomial distribution. (class template) |
||
|
Produces integer values on a geometric distribution. (class template) |
||
Poisson distributions | |||
|
Produces integer values on a poisson distribution. (class template) |
||
|
Produces real values on an exponential distribution. (class template) |
||
|
Produces real values on an gamma distribution. (class template) |
||
|
Produces real values on a Weibull distribution. (class template) |
||
|
Produces real values on an extreme value distribution. (class template) |
||
Normal distributions | |||
|
Produces real values on a standard normal (Gaussian) distribution. (class template) |
||
|
Produces real values on a lognormal distribution. (class template) |
||
|
Produces real values on a chi-squared distribution. (class template) |
||
|
Produces real values on a Cauchy distribution. (class template) |
||
|
Produces real values on a Fisher's F-distribution. (class template) |
||
|
Produces real values on a Student's t-distribution. (class template) |
||
Sampling distributions | |||
|
Produces random integers on a discrete distribution. (class template) |
||
|
Produces real values distributed on constant subintervals. (class template) |
||
|
Produces real values distributed on defined subintervals. (class template) |
[edit] Predefined seed sequence generators
Defined in header
<random> | |||
|
general-purpose bias-eliminating scrambled seed sequence generator (class) |
[edit] C library
Defined in header
<cstdlib> | ||
|
generates a pseudo-random number (function) |
|
|
initializes pseudo-random number generator (function) |
|
|
maximum possible value generated by rand() (macro constant) |