Freigeben über


linear_congruential_engine-Klasse

Generiert eine zufällige Sequenz mithilfe des linearen Kongruenzalgorithmus.

template<class UIntType, UIntType A, UIntType C, UIntType M> class linear_congruential_engine;

Parameter

  • UIntType
    Der unsigned integer-Ergebnistyp. Die möglichen Typen finden Sie unter <random>.

  • A
    Multiplikator. Vorbedingung: Siehe Abschnitt "Hinweise".

  • C
    Inkrement. Vorbedingung: Siehe Abschnitt "Hinweise".

  • M
    Modulooperator. Vorbedingung: Siehe Abschnitt "Hinweise".

Mitglieder

linear_congruential_engine::linear_congruential_engine

linear_congruential_engine::min

linear_congruential_engine::discard

linear_congruential_engine::operator()

linear_congruential_engine::max

linear_congruential_engine::seed

default_seed ist eine als 1u definierte Memberkonstante, die als Standardparameterwert für linear_congruential_engine::seed und den Einzelwertkonstruktor verwendet wird.

Weitere Informationen über Modulmember finden Sie unter <random>.

Hinweise

Die Vorlagenklasse linear_congruential_engine ist das einfachste Generatormodul, aber nicht das schnellste oder qualitativ höchstwertige. Eine Verbesserung gegenüber diesem Modul ist das substract_with_carry_engine. Keines dieser Module ist so schnell oder gibt so hochqualitative Ergebnisse zurück wie das mersenne_twister_engine.

Dieses Modul produziert Werte eines benutzerdefinierten Ganzzahltyps ohne Vorzeichen mithilfe der Wiederholungsrelation (period) x(i) = (A * x(i-1) + C) mod M.

Wenn M gleich Null ist, ist der für diese Modulooperation verwendete Wert numeric_limits<result_type>::max() + 1. Der Zustand des Moduls ist der letzte zurückgegebene Wert oder der Startwert, wenn operator() nicht aufgerufen wurde.

Wenn M nicht gleich Null ist, müssen die Werte der Vorlagenargumente A und C niedriger sein als M.

Obwohl Sie direkt aus diesem Modul einen Generator konstruieren können, können Sie auch eine der voreingestellten Typdefinitionen in der folgenden Tabelle verwenden.

Name

Beschreibung

minstd_rand0

Minimal Standard Engine 1988 (Lewis, Goodman und Miller 1969).

typedef linear_congruential_engine<unsigned int, 16807, 0, 2147483647> minstd_rand0;

minstd_rand

Aktualisierte Minimal Standard Engine minstd_rand0 (Park, Miller und Stockmeyer 1993).

typedef linear_congruential_engine<unsigned int, 48271, 0, 2147483647> minstd_rand;

Ausführliche Informationen über den Algorithmus für das lineare Kongruenzmodul.erhalten Sie im Wikipedia-Artikel Linear congruential generator.

Anforderungen

Header: <random>

Namespace: std

Siehe auch

Referenz

<random>