Freigeben über


<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.

    HinweisHinweis

    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.

Bb982398.collapse_all(de-de,VS.110).gifKlassen

bernoulli_distribution Class

Generiert eine Bernoulli-Verteilung.

binomial_distribution Class

Generiert eine Binomialverteilung.

cauchy_distribution Class

Generiert eine Cauchy-Verteilung.

chi_squared_distribution Class

Generiert eine Chi-Quadrat-Verteilung.

discard_block Class

Generiert eine zufällige Folge von der base Motor zurückgegebenen Werte zu verwerfen.TR1 aus Kompatibilitätsgründen beibehalten.

discard_block_engine Class

Generiert eine zufällige Folge von der base Motor zurückgegebenen Werte zu verwerfen.

discrete_distribution Class

Generiert eine diskrete Integer-Verteilung.

exponential_distribution Class

Generiert eine exponentielle Verteilung.

extreme_value_distribution Class

Generiert eine Verteilung Extremwert.

fisher_f_distribution Class

Generiert eine Fisher F-Verteilung.

gamma_distribution Class

Generiert eine Gammaverteilung.

geometric_distribution Class

Generiert eine geometrische Verteilung.

independent_bits_engine Class

Generiert eine zufällige Sequenz mit einer angegebenen Anzahl von Bits von Bits aus den Werten von seiner Basisklasse Engine zurückgegebenen Umpacken.

linear_congruential Class

Wird eine Zufallsfolge mit den linearen-kongruenter Algorithmus generiert.TR1 aus Kompatibilitätsgründen beibehalten.

linear_congruential_engine Class

Wird eine Zufallsfolge mit den linearen-kongruenter Algorithmus generiert.

lognormal_distribution Class

Generiert eine Log-Normalverteilung.

mersenne_twister Class

Generiert eine zufällige Sequenz mithilfe des Mersenne-Twister-Algorithmus.TR1 aus Kompatibilitätsgründen beibehalten.

mersenne_twister_engine Class

Generiert eine zufällige Sequenz mithilfe des Mersenne-Twister-Algorithmus.

negative_binomial_distribution Class

Generiert eine negative Binomialverteilung.

normal_distribution Class

Generiert eine Normalverteilung.

piecewise_constant_distribution Class

Generiert eine stückweise Konstante Verteilung.

piecewise_linear_distribution Class

Generiert eine stückweise lineare Verteilung.

poisson_distribution Class

Poisson-Verteilung wird generiert.

random_device Class

Generiert eine zufällige Sequenz mithilfe eines externen Geräts.

seed_seq Class

Speichert einen Vektor Ganzzahlwerte zufälligen Ausgangswert für eine Zufallszahl Engine liefern kann.

shuffle_order_engine Class

Generiert eine zufällige Abfolge durch Neuanordnen von seiner Basisklasse Engine zurückgegebenen Werte.

student_t_distribution Class

Generiert eine Student-T-Verteilung.

subtract_with_carry Class

Generiert eine zufällige Abfolge Carry-Algorithmus mit den Shapes voneinander abziehen.TR1 aus Kompatibilitätsgründen beibehalten.

subtract_with_carry_01 Class

Generiert eine zufällige Sequenz mithilfe der Gleitkommazahlen mit Carry Algorithmus zu subtrahieren.TR1 aus Kompatibilitätsgründen beibehalten.

subtract_with_carry_engine Class

Generiert eine zufällige Abfolge Carry-Algorithmus mit den Shapes voneinander abziehen.

uniform_int Class

Generiert eine einheitliche Integer-Verteilung.TR1 aus Kompatibilitätsgründen beibehalten.

uniform_int_distribution Class

Generiert eine einheitliche Integer-Verteilung.

uniform_real Class

Generiert eine gleichmäßige Verteilung für Gleitkommazahlen.TR1 aus Kompatibilitätsgründen beibehalten.

uniform_real_distribution Class

Generiert eine gleichmäßige Verteilung für Gleitkommazahlen.

variate_generator Class

Erstellt einen Wrapper ein Modul und eine Verteilung.

weibull_distribution Class

Generiert eine Weibull-Verteilung.

xor_combine Class

Generiert eine kombinierte Verteilung.

Bb982398.collapse_all(de-de,VS.110).gifTypedefs

default_random_engine TypeDef

Geben Sie die Definition für die Standard-Engine.

knuth_b TypeDef

Geben Sie die Definition für eine zufällige Reihenfolge-Engine.

minstd_rand0 TypeDef

Geben Sie die Definition für eine linear-kongruenter Engine.

minstd_rand TypeDef

Geben Sie die Definition für eine linear-kongruenter Engine.

mt19937 TypeDef

Geben Sie die Definition für eine Mersenne-Twister-Engine.

mt19937_64 TypeDef

Geben Sie die Definition für eine Mersenne-Twister-Engine.

ranlux_base_01 TypeDef

Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine.

ranlux3 TypeDef

Type-Definition für eine Subtraktion mit tragen Engine.

ranlux3_01 TypeDef

Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine.

ranlux4 TypeDef

Type-Definition für eine Subtraktion mit tragen Engine.

ranlux4_01 TypeDef

Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine.

ranlux24 TypeDef

Geben Sie die Definition für eine löschen-Block-Engine.

ranlux24_base TypeDef

Type-Definition für eine Subtraktion mit tragen Engine.

ranlux48 TypeDef

Geben Sie die Definition für eine löschen-Block-Engine.

ranlux48_base TypeDef

Type-Definition für eine Subtraktion mit tragen Engine.

ranlux64_base_01 TypeDef

Typdefinition für einen Gleitkommazahlen subtrahieren mit Carry-Engine.

Bb982398.collapse_all(de-de,VS.110).gifOperatoren

operator== <random>

Überprüft, ob das Modul auf der linken Seite des Operators-Modul auf der rechten Seite entspricht.

operator!= <random>

Überprüft, ob das Modul auf der linken Seite des Operators nicht gleich an das Modul auf der rechten Seite ist.

operator<< <random>

Schreibt Informationen in den Stream.

operator>> <random>

Extrahiert Informationen aus einem Stream.

Bb982398.collapse_all(de-de,VS.110).gifFunktionen

generate_canonical

Gibt einen Gleitkommawert aus einer zufälligen Abfolge zurück.