Condividi tramite


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

Bb982398.collapse_all(it-it,VS.110).gifClassi

bernoulli_distribution Class

Consente di generare una distribuzione di Bernoulli.

binomial_distribution Class

Consente di generare una distribuzione binomiale.

cauchy_distribution Class

Consente di generare una distribuzione di Cauchy.

chi_squared_distribution Class

Consente di generare una distribuzione del chi quadrato.

discard_block Class

Genera una sequenza casuale eliminando i valori restituiti da un motore di base.Mantenuto per compatibilità TR1.

discard_block_engine Class

Genera una sequenza casuale eliminando i valori restituiti da un motore di base.

discrete_distribution Class

Consente di generare una distribuzione discreta integer.

exponential_distribution Class

Consente di generare una distribuzione esponenziale.

extreme_value_distribution Class

Consente di generare una distribuzione di valore estreme.

fisher_f_distribution Class

Consente di generare una distribuzione f di Fisher.

gamma_distribution Class

Consente di generare una distribuzione gamma.

geometric_distribution Class

Consente di generare una distribuzione geometrica.

independent_bits_engine Class

Genera una sequenza casuale con un numero specificato di bit reimballaggio bit di valori restituiti da un motore di base.

linear_congruential Class

Genera una sequenza casuale utilizzando l'algoritmo congruential lineare.Mantenuto per compatibilità TR1.

linear_congruential_engine Class

Genera una sequenza casuale utilizzando l'algoritmo congruential lineare.

lognormal_distribution Class

Consente di generare una distribuzione normale di registro.

mersenne_twister Class

Genera una sequenza casuale utilizzando l'algoritmo di sito Mersenne alla twister.Mantenuto per compatibilità TR1.

mersenne_twister_engine Class

Genera una sequenza casuale utilizzando l'algoritmo di sito Mersenne alla twister.

negative_binomial_distribution Class

Consente di generare una distribuzione binomiale negativa.

normal_distribution Class

Consente di generare una distribuzione normale.

piecewise_constant_distribution Class

Genera un piecewise distribuzione costante.

piecewise_linear_distribution Class

Genera un piecewise distribuzione lineare.

poisson_distribution Class

Consente di generare una distribuzione di Poisson.

random_device Class

Genera una sequenza casuale utilizzando un dispositivo esterno.

seed_seq Class

Memorizza un vettore di valori integer senza segno che può fornire un valore di inizializzazione casuale per un modulo di gestione di numeri casuali.

shuffle_order_engine Class

Genera una sequenza casuale riordinando i valori restituiti da un motore di base.

student_t_distribution Class

Consente di generare una distribuzione t di Student.

subtract_with_carry Class

Genera una sequenza casuale tramite la sottrazione con algoritmo di trasportare.Mantenuto per compatibilità TR1.

subtract_with_carry_01 Class

Genera un casuale sequenza utilizzando la virgola mobile sottrarre con algoritmo di trasportare.Mantenuto per compatibilità TR1.

subtract_with_carry_engine Class

Genera una sequenza casuale tramite la sottrazione con algoritmo di trasportare.

uniform_int Class

Consente di generare una distribuzione uniforme di integer.Mantenuto per compatibilità TR1.

uniform_int_distribution Class

Consente di generare una distribuzione uniforme di integer.

uniform_real Class

Consente di generare una distribuzione uniforme a virgola mobile.Mantenuto per compatibilità TR1.

uniform_real_distribution Class

Consente di generare una distribuzione uniforme a virgola mobile.

variate_generator Class

Esegue il wrapping di un motore e una distribuzione.

weibull_distribution Class

Consente di generare una distribuzione di Weibull.

xor_combine Class

Consente di generare una distribuzione combinata.

Bb982398.collapse_all(it-it,VS.110).gifDefinizioni typedef

default_random_engine TypeDef

Digitare la definizione per il modulo predefinito.

knuth_b TypeDef

Definizione di un modulo di ordine di riproduzione casuale del tipo.

minstd_rand0 TypeDef

Digitare la definizione di un motore congruential lineare.

minstd_rand TypeDef

Digitare la definizione di un motore congruential lineare.

mt19937 TypeDef

Digitare la definizione di un modulo di gestione sito Mersenne alla twister.

mt19937_64 TypeDef

Digitare la definizione di un modulo di gestione sito Mersenne alla twister.

ranlux_base_01 TypeDef

Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione.

ranlux3 TypeDef

Definizione di tipo per una sottrazione con eseguire motore.

ranlux3_01 TypeDef

Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione.

ranlux4 TypeDef

Definizione di tipo per una sottrazione con eseguire motore.

ranlux4_01 TypeDef

Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione.

ranlux24 TypeDef

Definizione di un motore di blocco discard di tipo.

ranlux24_base TypeDef

Definizione di tipo per una sottrazione con eseguire motore.

ranlux48 TypeDef

Definizione di un motore di blocco discard di tipo.

ranlux48_base TypeDef

Definizione di tipo per una sottrazione con eseguire motore.

ranlux64_base_01 TypeDef

Definizione di tipo per sottrarre un a virgola mobile con motore di esecuzione.

Bb982398.collapse_all(it-it,VS.110).gifOperatori

operator== <random>

Verifica se il modulo di gestione sul lato sinistro dell'operatore è uguale al motore sul lato destro.

operator!= <random>

Verifica se il modulo di gestione sul lato sinistro dell'operatore non è uguale a motore sul lato destro.

operator<< <random>

Scrive le informazioni sullo stato del flusso.

operator>> <random>

Consente di estrarre le informazioni sullo stato da un flusso.

Bb982398.collapse_all(it-it,VS.110).gifFunzioni

generate_canonical

Restituisce un valore in virgola mobile da una sequenza casuale.