Standard library header <random>
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) |
Synopsis
#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