This header is part of the pseudo-random number generation library.
Uniform random bit generator requirements |
|
(C++20) | specifies that a type qualifies as a uniform random bit generator (concept) |
Random number engines |
|
(C++11) | implements linear congruential algorithm (class template) |
(C++11) | implements Mersenne twister algorithm (class template) |
(C++11) | implements a subtract-with-carry ( lagged Fibonacci) algorithm (class template) |
Random number engine adaptors |
|
(C++11) | discards some output of a random number engine (class template) |
(C++11) | packs the output of a random number engine into blocks of a specified number of bits (class template) |
(C++11) | delivers the output of a random number engine in a different order (class template) |
Predefined generators |
|
minstd_rand0 (C++11) | std::linear_congruential_engine<std::uint_fast32_t, 16807, 0, 2147483647> Discovered in 1969 by Lewis, Goodman and Miller, adopted as "Minimal standard" in 1988 by Park and Miller. |
minstd_rand (C++11) | std::linear_congruential_engine<std::uint_fast32_t, 48271, 0, 2147483647> Newer "Minimum standard", recommended by Park, Miller, and Stockmeyer in 1993. |
mt19937 (C++11) |
|
mt19937_64 (C++11) |
|
ranlux24_base (C++11) | std::subtract_with_carry_engine<std::uint_fast32_t, 24, 10, 24>
|
ranlux48_base (C++11) | std::subtract_with_carry_engine<std::uint_fast64_t, 48, 5, 12>
|
ranlux24 (C++11) | std::discard_block_engine<std::ranlux24_base, 223, 23> 24-bit RANLUX generator by Martin Lüscher and Fred James, 1994. |
ranlux48 (C++11) | std::discard_block_engine<std::ranlux48_base, 389, 11> 48-bit RANLUX generator by Martin Lüscher and Fred James, 1994. |
knuth_b (C++11) | std::shuffle_order_engine<std::minstd_rand0, 256>
|
default_random_engine | implementation-defined |
Non-deterministic random numbers |
|
(C++11) | non-deterministic random number generator using hardware entropy source (class) |
Uniform distributions |
|
(C++11) | produces integer values evenly distributed across a range (class template) |
(C++11) | produces real values evenly distributed across a range (class template) |
Bernoulli distributions |
|
(C++11) | produces bool values on a Bernoulli distribution. (class) |
(C++11) | produces integer values on a binomial distribution. (class template) |
(C++11) | produces integer values on a negative binomial distribution. (class template) |
(C++11) | produces integer values on a geometric distribution. (class template) |
Poisson distributions |
|
(C++11) | produces integer values on a poisson distribution. (class template) |
(C++11) | produces real values on an exponential distribution. (class template) |
(C++11) | produces real values on an gamma distribution. (class template) |
(C++11) | produces real values on a Weibull distribution. (class template) |
(C++11) | produces real values on an extreme value distribution. (class template) |
Normal distributions |
|
(C++11) | produces real values on a standard normal (Gaussian) distribution. (class template) |
(C++11) | produces real values on a lognormal distribution. (class template) |
(C++11) | produces real values on a chi-squared distribution. (class template) |
(C++11) | produces real values on a Cauchy distribution. (class template) |
(C++11) | produces real values on a Fisher's F-distribution. (class template) |
(C++11) | produces real values on a Student's t-distribution. (class template) |
Sampling distributions |
|
(C++11) | produces random integers on a discrete distribution. (class template) |
(C++11) | produces real values distributed on constant subintervals. (class template) |
(C++11) | produces real values distributed on defined subintervals. (class template) |
Utilities |
|
(C++11) | evenly distributes real values of given precision across [0, 1) (function template) |
(C++11) | general-purpose bias-eliminating scrambled seed sequence generator (class) |
#include <initializer_list> namespace std { // uniform random bit generator requirements template<class G> concept UniformRandomBitGenerator = /*see below*/; // class template linear_congruential_engine template<class UIntType, UIntType a, UIntType c, UIntType m> class linear_congruential_engine; // class template mersenne_twister_engine template<class UIntType, size_t w, size_t n, size_t m, size_t r, UIntType a, size_t u, UIntType d, size_t s, UIntType b, size_t t, UIntType c, size_t l, UIntType f> class mersenne_twister_engine; // class template subtract_with_carry_engine template<class UIntType, size_t w, size_t s, size_t r> class subtract_with_carry_engine; // class template discard_block_engine template<class Engine, size_t p, size_t r> class discard_block_engine; // class template independent_bits_engine template<class Engine, size_t w, class UIntType> class independent_bits_engine; // class template shuffle_order_engine template<class Engine, size_t k> class shuffle_order_engine; // engines and engine adaptors with predefined parameters using minstd_rand0 = /*see description*/ ; using minstd_rand = /*see description*/ ; using mt19937 = /*see description*/ ; using mt19937_64 = /*see description*/ ; using ranlux24_base = /*see description*/ ; using ranlux48_base = /*see description*/ ; using ranlux24 = /*see description*/ ; using ranlux48 = /*see description*/ ; using knuth_b = /*see description*/ ; using default_random_engine = /*see description*/ ; // class random_device class random_device; // class seed_seq class seed_seq; // function template generate_canonical template<class RealType, size_t bits, class URBG> RealType generate_canonical(URBG& g); // class template uniform_int_distribution template<class IntType = int> class uniform_int_distribution; // class template uniform_real_distribution template<class RealType = double> class uniform_real_distribution; // class bernoulli_distribution class bernoulli_distribution; // class template binomial_distribution template<class IntType = int> class binomial_distribution; // class template geometric_distribution template<class IntType = int> class geometric_distribution; // class template negative_binomial_distribution template<class IntType = int> class negative_binomial_distribution; // class template poisson_distribution template<class IntType = int> class poisson_distribution; // class template exponential_distribution template<class RealType = double> class exponential_distribution; // class template gamma_distribution template<class RealType = double> class gamma_distribution; // class template weibull_distribution template<class RealType = double> class weibull_distribution; // class template extreme_value_distribution template<class RealType = double> class extreme_value_distribution; // class template normal_distribution template<class RealType = double> class normal_distribution; // class template lognormal_distribution template<class RealType = double> class lognormal_distribution; // class template chi_squared_distribution template<class RealType = double> class chi_squared_distribution; // class template cauchy_distribution template<class RealType = double> class cauchy_distribution; // class template fisher_f_distribution template<class RealType = double> class fisher_f_distribution; // class template student_t_distribution template<class RealType = double> class student_t_distribution; // class template discrete_distribution template<class IntType = int> class discrete_distribution; // class template piecewise_constant_distribution template<class RealType = double> class piecewise_constant_distribution; // class template piecewise_linear_distribution template<class RealType = double> class piecewise_linear_distribution; }
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/header/random