linear_congruential_engine Class

Genera una secuencia aleatoria el algoritmo congruential lineal.

template<class UIntType,
    UIntType A, UIntType C, UIntType M>
    class linear_congruential_engine {
public:
    typedef UIntType result_type;
    static const UIntType multiplier = A;
    static const UIntType increment = C;
    static const UIntType modulus = M;
    static const UIntType default_seed = 1U;
    explicit linear_congruential_engine(result_type x0 = default_seed);
    explicit linear_congruential_engine(seed_seq& seq);
    void seed(result_type x0 = default_seed);
    void seed(seed_seq& seq);
    static const result_type min();
    static const result_type max();
    result_type operator()();
    void discard(unsigned long long count)();
private:
    result_type stored_value;
    };

Parámetros

  • UIntType
    El tipo de resultado de entero sin signo.

  • A
    El parámetro del motor de A.

  • C
    El parámetro del motor de C.

  • M
    El parámetro del motor de m.

Comentarios

La clase de plantilla describe <random> que genera valores de entero sin signo definido por el usuario escribe utilizando la relación x(i) = (A * x(i-1) + C) mod Mde relationrecurrence de la frecuencia.El estado del motor es el valor devuelto último, o el valor de inicialización si no se ha realizado ninguna llamada a operator().

El argumento UIntType template debería ser lo bastante grande para contener valores hasta la m - 1.Los valores de los argumentos A y C de plantilla deben ser menor que M.

Requisitos

encabezado: <aleatorio>

espacio de nombres: std

Vea también

Referencia

<random>

linear_congruential_engine::discard

linear_congruential_engine::linear_congruential_engine

linear_congruential_engine::operator()

linear_congruential_engine::seed