std::linear_congruential_engine (3) - Linux Manuals

std::linear_congruential_engine: std::linear_congruential_engine


std::linear_congruential_engine - std::linear_congruential_engine


Defined in header <random>
class UIntType,
UIntType a, (since C++11)
UIntType c,
UIntType m
> class linear_congruential_engine;

linear_congruential_engine is a random number engine based on Linear_congruential_generator_(LCG). A LCG has a state that consists of a single integer.
The transition algorithm of the LCG function is x
i+1 ← (ax
i+c) mod m.
The following typedefs define the random number engine with two commonly used parameter sets:

Defined in header <random>
Type Definition
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

Member types

Member type Definition
result_type The integral type generated by the engine. Results are undefined if this is not an unsigned integral type.

Member functions

Construction and Seeding

              constructs the engine
constructor (public member function)
              sets the current state of the engine
seed (public member function)


              advances the engine's state and returns the generated value
operator() (public member function)
              advances the engine's state by a specified amount
discard (public member function)


min gets the smallest possible value in the output range
              (public static member function)

max gets the largest possible value in the output range
              (public static member function)

Non-member functions

           compares the internal states of two pseudo-random number engines
operator== (function template)
           performs stream input and output on pseudo-random number engine
operator<< (function template)

Member objects

constexpr UIntType multiplier the multiplier term (a).
                                (public static member constant)

constexpr UIntType increment the increment term (c).
                                (public static member constant)

constexpr UIntType modulus the modulus term (m).
                                (public static member constant)

constexpr UIntType default_seed the default seed (1).
                                (public static member constant)