<random>
Definisce molte generatori di numeri casuali.
#include <random>
Note
A Generatore di numeri casuali è un oggetto che produce una sequenza di valori di pseudo-casuali.Il generatore che produce valori uniformemente distribuiti in un intervallo specificato è un motore.Un motore può essere combinato con un distribuzione, o passando il motore come argomento per la distribuzione operator() o mediante un variate_generator Class, per produrre valori vengono distribuiti in modo definito per la distribuzione.
La maggior parte dei generatori di numeri casuali sono i cui parametri personalizzare il generatore di modelli.Le descrizioni dei generatori che accettano un tipo come argomento utilizzano i nomi dei parametri di modello comune per descrivere le proprietà del tipo che possono essere utilizzate come un tipo di argomento effettivo, come illustrato di seguito:
IntTypeIndica un tipo integrale con o senza segno.
UIntTypeIndica un tipo integrale senza segno.
RealTypeIndica un tipo a virgola mobile.
Un motore è una classe TR1 o una classe modello le cui istanze fungono da origine di numeri casuali distribuiti uniformemente tra un valore minimo e massimo.Un motore può essere un semplice motore o un engine composti.Ogni motore ha i seguenti membri:
typedef numeric-type result_typeè il tipo restituito per il generatore operator().
result_type min()Restituisce il valore minimo che viene restituito tramite il generatore operator().
result_type max()Restituisce il valore massimo viene restituito tramite il generatore operator().Quando result_type è un tipo integrale, questo è il valore massimo che può essere effettivamente restituito; Quando result_type è un tipo a virgola mobile, questo è il valore più piccolo maggiore di tutti i valori che possono essere restituiti.
void seed()Il funzione di inizializzazione consente di inizializzare il motore con valori di inizializzazione predefiniti.
template <class InIt> void seed(InIt& first, InIt last)La funzione di sementi le sementi del motore utilizzando i valori di tipo unsigned long dalla sequenza di aperte a metà è indicata da [first, last).Se la sequenza non è sufficientemente lungo per inizializzare completamente il modulo di gestione, la funzione memorizza il valore last in first e genera un oggetto di tipo std::invalid_argument.
[!NOTA]
Solo i motori mantenuti per compatibilità TR1 includono questo membro.
result_type operator()()Restituisce i valori che vengono distribuiti uniformemente tra min() e max().
min, max, e result_type non sono descritte in dettaglio per i motori che seguono.
A partire da Visual Studio 2010, ogni motore, ad eccezione di quelli conservati per garantire la compatibilità TR1 include anche i seguenti membri:
Un costruttore esplicito con l'argomento result_type x0 che consente di creare un modulo di gestione di seeding come se chiamando il metodo seed(x0).
Un costruttore esplicito con l'argomento seed_seq& seq che consente di creare un modulo di gestione di seeding come se chiamando il metodo seed(seq).
void seed(result_type x0)La funzione di sementi le sementi del motore con valore di inizializzazione x0.
void seed(seed_seq& seq)La funzione di sementi le sementi del motore con valori di inizializzazione da seq.
void discard(unsigned long long count)chiama effettivamente operator() volte di conteggio e scarta ogni valore.
Ogni motore è un stato che determina la sequenza di valori che verranno generati dalle successive chiamate a operator().È possibile confrontare gli stati di due oggetti dello stesso tipo utilizzando operator== e operator!=.Se i due stati confrontano risultano uguali, gli oggetti genererà la stessa sequenza di valori.Lo stato di un oggetto può essere salvato in un flusso come una sequenza di valori senza segno a 32 bit utilizzando il operator<< dell'oggetto.Lo stato viene modificato non salvato.Uno stato salvato può essere letto in un oggetto dello stesso tipo utilizzando operator>>.
A semplice motore è un motore che genera numeri casuali direttamente.Questa libreria fornisce una classe in cui gli oggetti sono semplici motori.Fornisce inoltre quattro modelli di classe possono essere creata un'istanza utilizzando i valori che forniscono i parametri per l'algoritmo che implementano e nove predefinite le istanze di tali modelli di classe.Gli oggetti di questi tipi sono anche motori semplici.
A engine composti è un motore che consente di ottenere numeri casuali da uno o più semplice motori e genera un flusso di numero casuale uniformemente distribuito utilizzando tali valori.Questa libreria fornisce modelli di classe per due motori di composti.
A distribuzione è una classe TR1 o modello le cui istanze Trasforma un flusso di numeri casuali uniformemente distribuiti ottenuti da un motore in un flusso di numeri casuali che dispongono di una distribuzione particolare.Ogni distribuzione ha i seguenti membri:
typedef numeric-type input_typeè il tipo che deve essere restituito dal motore passato a operator().
typedef numeric-type result_typeè il tipo restituito per la distribuzione operator().
void reset()Ignora i valori memorizzati nella cache, in modo che il risultato della chiamata successiva a operator() non dipende da tutti i valori ottenuti dal motore prima della chiamata.
template <class Engine> result_type operator()(Engine& eng)Restituisce i valori che vengono distribuiti in base alla definizione della distribuzione, utilizzando eng come una fonte di valori casuali uniformemente distribuiti e le stored pacchetto parametro.
input_type, result_type, e reset non sono descritte in dettaglio per le distribuzioni che seguono.
A partire da Visual Studio 2010, ogni distribuzione dispone anche di:
typedef unspecified-type param_typeil pacchetto di parametri viene passato a operator () per generare il valore restituito.
A const param& costruttore inizializza il pacchetto di parametro memorizzata dal relativo argomento.
param_type param() constOttiene il pacchetto di parametro memorizzata.
void param(const param_type&)Imposta il pacchetto di parametro memorizzata dal relativo argomento.
template <class Engine> result_type operator()(Engine& eng, param_type par0)Restituisce i valori distribuiti secondo la definizione della distribuzione, utilizzando eng come una fonte di valori casuali distribuiti in modo uniforme e il pacchetto del parametro par0.
Un pacchetto di parametro è un oggetto che memorizza tutti i parametri necessari per una distribuzione.Essa contiene:
typedef distribution-type distribution_typeè il tipo della sua distribuzione.
Uno o più costruttori che accettano lo stesso parametro viene elencato come il take costruttori di distribuzione.
Le stesse funzioni di accesso ai parametri come la distribuzione.
Operatori di confronto di uguaglianza e disuguaglianza.
La libreria può essere generata come una versione verificata e come una versione non controllata.La versione controllata viene utilizzata una macro simile a c assert macro per verificare le condizioni contrassegnato come Precondition nelle descrizioni funzionali.Per utilizzare la versione controllata, definire una macro _RNG_CHECK o la macro _DEBUG in un valore numerico diverso da zero in tutto il codice che utilizza la libreria.
Classi
Consente di generare una distribuzione di Bernoulli. |
|
Consente di generare una distribuzione binomiale. |
|
Consente di generare una distribuzione di Cauchy. |
|
Consente di generare una distribuzione del chi quadrato. |
|
Genera una sequenza casuale eliminando i valori restituiti da un motore di base.Mantenuto per compatibilità TR1. |
|
Genera una sequenza casuale eliminando i valori restituiti da un motore di base. |
|
Consente di generare una distribuzione discreta integer. |
|
Consente di generare una distribuzione esponenziale. |
|
Consente di generare una distribuzione di valore estreme. |
|
Consente di generare una distribuzione f di Fisher. |
|
Consente di generare una distribuzione gamma. |
|
Consente di generare una distribuzione geometrica. |
|
Genera una sequenza casuale con un numero specificato di bit reimballaggio bit di valori restituiti da un motore di base. |
|
Genera una sequenza casuale utilizzando l'algoritmo congruential lineare.Mantenuto per compatibilità TR1. |
|
Genera una sequenza casuale utilizzando l'algoritmo congruential lineare. |
|
Consente di generare una distribuzione normale di registro. |
|
Genera una sequenza casuale utilizzando l'algoritmo di sito Mersenne alla twister.Mantenuto per compatibilità TR1. |
|
Genera una sequenza casuale utilizzando l'algoritmo di sito Mersenne alla twister. |
|
Consente di generare una distribuzione binomiale negativa. |
|
Consente di generare una distribuzione normale. |
|
Genera un piecewise distribuzione costante. |
|
Genera un piecewise distribuzione lineare. |
|
Consente di generare una distribuzione di Poisson. |
|
Genera una sequenza casuale utilizzando un dispositivo esterno. |
|
Memorizza un vettore di valori integer senza segno che può fornire un valore di inizializzazione casuale per un modulo di gestione di numeri casuali. |
|
Genera una sequenza casuale riordinando i valori restituiti da un motore di base. |
|
Consente di generare una distribuzione t di Student. |
|
Genera una sequenza casuale tramite la sottrazione con algoritmo di trasportare.Mantenuto per compatibilità TR1. |
|
Genera un casuale sequenza utilizzando la virgola mobile sottrarre con algoritmo di trasportare.Mantenuto per compatibilità TR1. |
|
Genera una sequenza casuale tramite la sottrazione con algoritmo di trasportare. |
|
Consente di generare una distribuzione uniforme di integer.Mantenuto per compatibilità TR1. |
|
Consente di generare una distribuzione uniforme di integer. |
|
Consente di generare una distribuzione uniforme a virgola mobile.Mantenuto per compatibilità TR1. |
|
Consente di generare una distribuzione uniforme a virgola mobile. |
|
Esegue il wrapping di un motore e una distribuzione. |
|
Consente di generare una distribuzione di Weibull. |
|
Consente di generare una distribuzione combinata. |
Definizioni typedef
Digitare la definizione per il modulo predefinito. |
|
Definizione di un modulo di ordine di riproduzione casuale del tipo. |
|
Digitare la definizione di un motore congruential lineare. |
|
Digitare la definizione di un motore congruential lineare. |
|
Digitare la definizione di un modulo di gestione sito Mersenne alla twister. |
|
Digitare la definizione di un modulo di gestione sito Mersenne alla twister. |
|
Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione. |
|
Definizione di tipo per una sottrazione con eseguire motore. |
|
Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione. |
|
Definizione di tipo per una sottrazione con eseguire motore. |
|
Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione. |
|
Definizione di un motore di blocco discard di tipo. |
|
Definizione di tipo per una sottrazione con eseguire motore. |
|
Definizione di un motore di blocco discard di tipo. |
|
Definizione di tipo per una sottrazione con eseguire motore. |
|
Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione. |
Operatori
Verifica se il modulo di gestione sul lato sinistro dell'operatore è uguale al motore sul lato destro. |
|
Verifica se il modulo di gestione sul lato sinistro dell'operatore non è uguale a motore sul lato destro. |
|
Scrive le informazioni sullo stato del flusso. |
|
Consente di estrarre le informazioni sullo stato da un flusso. |
Funzioni
Restituisce un valore in virgola mobile da una sequenza casuale. |