Condividi tramite


linear_congruential_engine Class

Genera una sequenza casuale dall'algoritmo congruential lineare.

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;
    };

Parametri

  • UIntType
    Il tipo di risultato intero senza segno.

  • A
    Il parametro del motore di Su.

  • C
    Il parametro del motore di C.

  • M
    Il parametro del motore m.

Note

La classe modello viene descritto <random> che produce valori di un tipo integrale senza segno definito utilizzando la relazione x(i) = (A * x(i-1) + C) mod Mdi relationrecurrence di ricorrenza.Lo stato del motore è l'ultimo valore restituito o, il valore di inizializzazione se alcuna chiamata è stata apportata a operator().

Un argomento di template UIntType deve essere sufficiente per contenere valori fino a m. - 1.I valori degli argomenti di modello A e C devono essere meno che M.

Requisiti

intestazione: <random>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

<random>

linear_congruential_engine::discard

linear_congruential_engine::linear_congruential_engine

linear_congruential_engine::operator()

linear_congruential_engine::seed