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).
|
minstd_rand |
Aktualisierte Minimal Standard Engine minstd_rand0 (Park, Miller und Stockmeyer 1993).
|
Ausführliche Informationen über den Algorithmus für das lineare Kongruenzmodul.erhalten Sie im Wikipedia-Artikel Linear congruential generator.
Anforderungen
Header: <random>
Namespace: std