Freigeben über


linear_congruential_engine Class

Generiert eine zufällige Sequenz durch den linearen congruential Algorithmus.

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

Parameter

  • UIntType
    Der vorzeichenlose Ergebnistyp ganze Zahl.

  • A
    Der a-Modulparameter.

  • C
    Der C-Modulparameter.

  • M
    Der M-Modulparameter.

Hinweise

Die Vorlagenklasse beschreibt <random>, die Werte eines vom Benutzer angegebenen ganzzahligen Typ ohne Vorzeichen mit der Wiederholung relationrecurrence Beziehung x(i) = (A * x(i-1) + C) mod M erzeugt.Der Zustand des Moduls ist der letzte zurückgegebene Wert oder der Anfangswert, wenn operator() kein Aufruf ausgeführt wurde.

Das Vorlagenargument UIntType muss groß genug sein, Werte bis zu M enthält - 1.Die Werte der Vorlagenargumente A und C müssen kleiner als M sein.

Anforderungen

Header: <random>

Namespace: std

Siehe auch

Referenz

<random>

linear_congruential_engine::discard

linear_congruential_engine::linear_congruential_engine

linear_congruential_engine::operator()

linear_congruential_engine::seed