<random>
Definiert viele Zufallszahlen-Generatoren.
#include <random>
Hinweise
A Zufallszahlen-Generators ist ein Objekt, das eine Sequenz von pseudozufälligen Werten erzeugt.Ein Generator, der Werte in einem angegebenen Bereich gleichmäßig verteilt ist ein Engine.Ein Modul kann mit kombiniert werden eine Verteilung, entweder durch das Modul als Argument übergeben, um der Verteilungs operator() oder mithilfe einer variate_generator Class, um Werte zu erzeugen, die in einer Weise verteilt werden, die durch die Verteilung.
Die meisten der Zufallszahlen-Generatoren sind Vorlagen, deren Parameter den Generator anpassen.Die Beschreibungen der Generatoren, die einen Typ als Argument verwenden gemeinsame Vorlage Parameternamen um die Eigenschaften des Typs beschreiben, die als tatsächlichen Argumenttyp,, wie folgt zulässig sind:
IntTypekennzeichnet einen ganzzahligen Typ mit oder ohne Vorzeichen.
UIntTypeGibt einen vorzeichenloser Ganzzahltyp.
RealTypeGibt ein Gleitkommatyp sein.
Ein Modul ist eine TR1-Klasse oder Vorlage-Klasse, deren Instanzen als Quelle von Zufallszahlen zwischen einem minimalen und maximalen Wert gleichmäßig verteilt.Ein Modul kann ein einfache Engine oder ein verbundtriebwerk.Jedes Modul verfügt über die folgenden Member:
typedef numeric-type result_typeist der Typ, der durch des Generators zurückgeliefert operator().
result_type min()Gibt den kleinsten Wert, der durch des Generators zurückgegeben wird operator().
result_type max()Gibt den Höchstwert zurück, das von des Generators operator().Wenn result_type ist ein integraler Typ, dies ist der maximale Wert, die tatsächlich zurückgegeben werden kann; Wenn result_type ist ein Gleitkommatyp, dies ist der kleinste Wert größer als alle Werte, die zurückgegeben werden können.
void seed()Die Seed-Funktion Engine mit Samen von Standardwerten initialisiert.
template <class InIt> void seed(InIt& first, InIt last)Die Seed-Funktion Samen der Motor mit Werten vom Typ unsigned long aus der halb offenen-Sequenz, die mit gezeigt ist [first, last).Wenn die Sequenz nicht lang genug, um das Modul vollständig initialisiert ist, speichert die Funktion den Wert last in first und löst ein Objekt vom Typ std::invalid_argument.
Hinweis Nur Motoren TR1 der Abwärtskompatibilität auch dieses Mitglied.
result_type operator()()Liefert Werte, die gleichmäßig zwischen min() und max().
min, max, und result_type sind nicht für Motoren, die Folgen ausführlich beschrieben.
Jeder Motor, der mit Ausnahme derjenigen TR1 Abwärtskompatibilität enthält ab Visual Studio 2010 auch die folgenden Member:
Ein expliziter Konstruktor mit dem Argument result_type x0 ein Motors ausgesät werden, als ob Sie durch Aufrufen von seed(x0) erstellt.
Ein expliziter Konstruktor mit dem Argument seed_seq& seq erstellt ein Modul ausgesät werden, als ob durch Aufrufen seed(seq).
void seed(result_type x0)Die Seed-Funktion Samen die Motor mit Ausgangswert x0.
void seed(seed_seq& seq)Die Seed-Funktion Samen die Motor mit Ausgangswerten von seq.
void discard(unsigned long long count)effektiv ruft operator() Count Mal und Rückwürfe jeder Wert.
Jedes Modul verfügt über eine Status feststellt, dass die Sequenz von Werten, die durch nachfolgende Aufrufe generiert werden, operator().Die Zuständen der zwei Objekte desselben Typs verglichen werden können, mithilfe von operator== und operator!=.Wenn die beiden Zustände als gleich verglichen, generiert die Objekte die gleiche Sequenz von Werten.Der Zustand eines Objekts kann gespeichert werden in einen Stream als eine Folge von 32-Bit-Werte ohne Vorzeichen mithilfe der operator<< des Objekts.Der Zustand wird durch Speichern nicht geändert.Ein gespeicherter Zustand kann in ein Objekt desselben Typs gelesen werden, mithilfe von operator>>.
A einfache Engine ist ein Modul, das direkt Zufallszahlen erzeugt.Diese Bibliothek enthält eine Klasse, deren Objekte einfach Motoren sind.Es bietet auch vier Klassenvorlagen, die instanziiert werden können, mithilfe der Werte, die Parameter für den Algorithmus angeben, die sie implementieren, und neun vordefinierte Instanzen der Klassenvorlagen.Objekte dieser Typen sind auch einfache Motoren.
A verbundtriebwerk bildet eine Engine, die von einem Zufallszahlen abruft oder einfacher Motoren und generiert einen Stream von gleichmäßig verteilten Zufallszahlen mithilfe dieser Werte.Diese Bibliothek bietet Klassenvorlagen für zwei verbundmaschinen.
A Verteilung ist TR1-Klasse oder Vorlage-Klasse, deren Instanzen transformieren einen Stream von gleichmäßig verteilten Zufallszahlen eines Motors in einen Stream von Zufallszahlen, die eine bestimmte Verteilung erhalten.Jede Distribution hat die folgenden Elemente:
typedef numeric-type input_typeist der Typ, der von der Engine übergeben zurückgegeben werden sollen operator().
typedef numeric-type result_typeder Typ, das von der Verteilungs operator().
void reset()Verwirft alle zwischengespeicherten Werte, so dass das Ergebnis der nächste Aufruf von operator() hängt nicht vom Modul vor dem Aufruf der erhaltenen Werten.
template <class Engine> result_type operator()(Engine& eng)Liefert Werte, die gemäß der Verteilung Definition mithilfe verteilt werden eng als Quelle von gleichmäßig verteilten zufällige Werte und die gespeicherten Parameter Paket.
input_type, result_type, und reset sind nicht für die Distributionen, die Folgen ausführlich beschrieben.
Ab Visual Studio 2010 hat auch jede Distribution:
typedef unspecified-type param_typeoperator() ihren Rückgabewert generieren wird das Paket von Parametern übergeben werden.
A const param& -Konstruktor initialisiert das gespeicherten Parameter-Paket aus dem Argument.
param_type param() constRuft das Paket gespeicherten Parameter.
void param(const param_type&)Das gespeicherten Parameter-Paket festgelegt vom Argument.
template <class Engine> result_type operator()(Engine& eng, param_type par0)Gibt Werte entsprechend der Verteilung Definition, Verwendung Eng als Quelle von gleichmäßig verteilten zufällige Werte und Parameter-Paket verteilt par0.
Ein Parameter-Paket ist ein Objekt, das speichert alle Parameter, die für eine Verteilung erforderlich sind.Sie enthält folgende Informationen:
typedef distribution-type distribution_typeist die Art ihrer Verbreitung.
Ein oder mehrere Konstruktoren, die den gleichen Parameter Listet die Verteilung Konstruktoren nehmen.
Die gleichen Parameter-Access-Funktionen wie die Verteilung.
Gleichheit und Ungleichheit Vergleichsoperatoren.
Die Bibliothek kann als eine aktivierte Version und unchecked-Version erstellt werden.Die geprüfte Version verwendet ein Makro ähnlich dem c assert Makro, um die Bedingungen zu testen, die mit Precondition in den Funktionsbeschreibungen.Um die geprüfte Version zu verwenden, definieren Sie entweder das Makro _RNG_CHECK oder das Makro _DEBUG um einen numerischen Wert ungleich Null in Code, der die Bibliothek verwendet.
Klassen
Generiert eine Bernoulli-Verteilung. |
|
Generiert eine Binomialverteilung. |
|
Generiert eine Cauchy-Verteilung. |
|
Generiert eine Chi-Quadrat-Verteilung. |
|
Generiert eine zufällige Folge von der base Motor zurückgegebenen Werte zu verwerfen.TR1 aus Kompatibilitätsgründen beibehalten. |
|
Generiert eine zufällige Folge von der base Motor zurückgegebenen Werte zu verwerfen. |
|
Generiert eine diskrete Integer-Verteilung. |
|
Generiert eine exponentielle Verteilung. |
|
Generiert eine Verteilung Extremwert. |
|
Generiert eine Fisher F-Verteilung. |
|
Generiert eine Gammaverteilung. |
|
Generiert eine geometrische Verteilung. |
|
Generiert eine zufällige Sequenz mit einer angegebenen Anzahl von Bits von Bits aus den Werten von seiner Basisklasse Engine zurückgegebenen Umpacken. |
|
Wird eine Zufallsfolge mit den linearen-kongruenter Algorithmus generiert.TR1 aus Kompatibilitätsgründen beibehalten. |
|
Wird eine Zufallsfolge mit den linearen-kongruenter Algorithmus generiert. |
|
Generiert eine Log-Normalverteilung. |
|
Generiert eine zufällige Sequenz mithilfe des Mersenne-Twister-Algorithmus.TR1 aus Kompatibilitätsgründen beibehalten. |
|
Generiert eine zufällige Sequenz mithilfe des Mersenne-Twister-Algorithmus. |
|
Generiert eine negative Binomialverteilung. |
|
Generiert eine Normalverteilung. |
|
Generiert eine stückweise Konstante Verteilung. |
|
Generiert eine stückweise lineare Verteilung. |
|
Poisson-Verteilung wird generiert. |
|
Generiert eine zufällige Sequenz mithilfe eines externen Geräts. |
|
Speichert einen Vektor Ganzzahlwerte zufälligen Ausgangswert für eine Zufallszahl Engine liefern kann. |
|
Generiert eine zufällige Abfolge durch Neuanordnen von seiner Basisklasse Engine zurückgegebenen Werte. |
|
Generiert eine Student-T-Verteilung. |
|
Generiert eine zufällige Abfolge Carry-Algorithmus mit den Shapes voneinander abziehen.TR1 aus Kompatibilitätsgründen beibehalten. |
|
Generiert eine zufällige Sequenz mithilfe der Gleitkommazahlen mit Carry Algorithmus zu subtrahieren.TR1 aus Kompatibilitätsgründen beibehalten. |
|
Generiert eine zufällige Abfolge Carry-Algorithmus mit den Shapes voneinander abziehen. |
|
Generiert eine einheitliche Integer-Verteilung.TR1 aus Kompatibilitätsgründen beibehalten. |
|
Generiert eine einheitliche Integer-Verteilung. |
|
Generiert eine gleichmäßige Verteilung für Gleitkommazahlen.TR1 aus Kompatibilitätsgründen beibehalten. |
|
Generiert eine gleichmäßige Verteilung für Gleitkommazahlen. |
|
Erstellt einen Wrapper ein Modul und eine Verteilung. |
|
Generiert eine Weibull-Verteilung. |
|
Generiert eine kombinierte Verteilung. |
Typedefs
Geben Sie die Definition für die Standard-Engine. |
|
Geben Sie die Definition für eine zufällige Reihenfolge-Engine. |
|
Geben Sie die Definition für eine linear-kongruenter Engine. |
|
Geben Sie die Definition für eine linear-kongruenter Engine. |
|
Geben Sie die Definition für eine Mersenne-Twister-Engine. |
|
Geben Sie die Definition für eine Mersenne-Twister-Engine. |
|
Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine. |
|
Type-Definition für eine Subtraktion mit tragen Engine. |
|
Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine. |
|
Type-Definition für eine Subtraktion mit tragen Engine. |
|
Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine. |
|
Geben Sie die Definition für eine löschen-Block-Engine. |
|
Type-Definition für eine Subtraktion mit tragen Engine. |
|
Geben Sie die Definition für eine löschen-Block-Engine. |
|
Type-Definition für eine Subtraktion mit tragen Engine. |
|
Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine. |
Operatoren
Überprüft, ob das Modul auf der linken Seite des Operators-Modul auf der rechten Seite entspricht. |
|
Überprüft, ob das Modul auf der linken Seite des Operators nicht gleich an das Modul auf der rechten Seite ist. |
|
Schreibt Informationen in den Stream. |
|
Extrahiert Informationen aus einem Stream. |
Funktionen
Gibt einen Gleitkommawert aus einer zufälligen Abfolge zurück. |