Sdílet prostřednictvím


<random>

Definuje mnoho generátory náhodných čísel.

#include <random>

Poznámky

A Generátor pseudonáhodných čísel je objekt, který vytvoří posloupnost pseudonáhodných hodnoty.Generátor, který vytváří rovnoměrně v určeném rozsahu hodnot je stroj.Motor lze kombinovat s distribuce, buď předáním motoru jako argument distribuční operator() nebo pomocí variate_generator Class, vyrábět hodnoty, které jsou distribuovány způsobem, který je definován pro distribuci.

Většina náhodné číslo generátorů šablon, jehož parametry přizpůsobit generátoru.Popisy generátory, zadejte jako argument, které popisují vlastnosti typu, které jsou povoleny jako skutečné argument typu, takto pomocí běžné názvy parametrů šablony:

  • IntTypeoznačuje podepsaná nebo nepodepsaná integrálního typu.

  • UIntTypeoznačuje nepodepsané integrálního typu.

  • RealTypeoznačuje typ s plovoucí desetinnou čárkou.

Motor je TR1 třídy nebo šablona třídy, jehož instance sloužit jako zdroj náhodných čísel rovnoměrně mezi minimální a maximální hodnotu.Motor může být jednoduchý stroj nebo složené motoru.Každý motor má následující členy:

  • typedef numeric-type result_typeTyp vrácené generátoru operator().

  • result_type min()Vrátí minimální hodnotu vrácenou zdroje tepla operator().

  • result_type max()Vrátí maximální hodnotu vrácenou zdroje tepla operator().Při result_type je integrálního typu, toto je maximální hodnotu, která může být vrácena; Při result_type je typ s plovoucí desetinnou čárkou, toto je nejmenší hodnota větší než všechny hodnoty, které mohou být vráceny.

  • void seed()Osiva funkce inicializuje modul s výchozími hodnotami osiva.

  • template <class InIt> void seed(InIt& first, InIt last)Funkce osiva semena motoru pomocí hodnoty typu unsigned long z poloviny otevřít sekvence, které se odkazuje [first, last).Pokud sekvence není dostatečně dlouhé, aby plně inicializovat modul, funkce uložena hodnota last v first a vyvolá objekt typu std::invalid_argument.

    [!POZNÁMKA]

    Pouze motory zachována kompatibilita TR1 patří tento člen.

  • result_type operator()()Vrátí hodnoty, které jsou rovnoměrně rozloženy mezi min() a max().

min, max, a result_type nejsou popsány podrobně pro motory, které následují.

Počínaje Visual Studio 2010, každý motor s výjimkou zachována kompatibilita TR1 obsahuje také následující členy:

  • Explicitní konstruktor s argumentem result_type x0 vytváří motoru peckami jako v případě, že pomocí volání seed(x0).

  • Explicitní konstruktor s argumentem seed_seq& seq vytváří motoru peckami jako v případě, že pomocí volání seed(seq).

  • void seed(result_type x0)Funkce osiva semena motoru s hodnotou osiva x0.

  • void seed(seed_seq& seq)Funkce osiva semena motoru pomocí počátečních hodnot z seq.

  • void discard(unsigned long long count)efektivně volá operator() počet opakování a výmětu jednotlivé hodnoty.

Každý motor má stavu , určuje posloupnost hodnot generovaných následné volání na operator().Státy dvou objektů stejného typu lze porovnat pomocí operator== a operator!=.Porovnání dvou států jako rovný, vygeneruje objekty stejné pořadí hodnot.Stav objektu lze uložit do proudu jako posloupnost 32bitové hodnoty nepodepsané pomocí operator<< objektu.Stav se nezmění jeho uložením.Uložený stav lze číst do stejného typu objektu pomocí operator>>.

A jednoduchý stroj je motor, který vytváří přímo náhodných čísel.Tato knihovna obsahuje jednu třídu, jejíž objekty jsou jednoduché motory.Poskytuje čtyři třídy šablon, které lze vytvořit instanci pomocí hodnot, které obsahují parametry pro implementaci algoritmu a devíti předdefinované instance tyto šablony třídy.Tyto typy objektů jsou také jednoduché motory.

A složené motoru je motor, který získá náhodných čísel z jednoho nebo více jednoduché motorů a generuje proud rozložených náhodných čísel pomocí těchto hodnot.Tato knihovna poskytuje dva stroje složené šablony třídy.

A distribuce je třída TR1 nebo proud rozložených náhodných čísel, získané z motoru do proudu náhodných čísel, která mají zvláštní distribuční transformace jehož instance třídy šablony.Každé rozdělení má následující členy:

  • typedef numeric-type input_typeje typ, který by měl být vrácen stroj předán operator().

  • typedef numeric-type result_typeTyp vrácené distribuce operator().

  • void reset()zahodí všechny hodnoty uložené v mezipaměti tak, aby výsledkem další volání operator() nezávisí na všechny hodnoty získané z motoru před volání.

  • template <class Engine> result_type operator()(Engine& eng)Vrátí hodnoty, které jsou distribuovány podle definice distribuci pomocí eng jako zdroj rozložených náhodných hodnot a uložené balíček parametr.

input_type, result_type, a reset nejsou popsány podrobně pro rozdělení, které následují.

Počínaje Visual Studio 2010, každý distribuční má také:

  • typedef unspecified-type param_typebalíček parametry předána ke generování hodnoty operator().

  • A const param& konstruktor inicializuje uložené parametr balíček z argumentu.

  • param_type param() constnačte uložené parametru balíčku.

  • void param(const param_type&)Nastaví parametr uložené balíček z argumentu.

  • template <class Engine> result_type operator()(Engine& eng, param_type par0)Vrátí hodnoty podle definice distribuci jako zdroj rozložených náhodných hodnot a parametrů balíček pomocí eng par0.

Balíček parametr je objekt, který uchovává všechny parametry potřebné pro rozdělení.Obsahuje:

  • typedef distribution-type distribution_typeje typ jeho distribuce.

  • Jeden nebo více konstruktory stejný parametr, které uvádí jako vzít distribuční konstruktory.

  • Parametr access funkcí distribuce.

  • Relační operátory rovnosti a nerovnost.

Knihovna je možné sestavit jako zkontrolované verzi a nekontrolované verze.Kontrolované verze používá podobné c na makro assert makra testování podmínky označeny jako Precondition ve funkční popisy.Chcete-li použít kontrolované verze definovat buď makro _RNG_CHECK nebo makro _DEBUG na číselnou hodnotu nula v veškerý kód využívající knihovnu.

Bb982398.collapse_all(cs-cz,VS.110).gifTřídy

bernoulli_distribution Class

Generuje Bernoulliho rozdělení.

binomial_distribution Class

Generuje binomické rozdělení.

cauchy_distribution Class

Generuje Cauchy distribuce.

chi_squared_distribution Class

Generuje rozdělení chí-kvadrát.

discard_block Class

Generuje náhodné posloupnosti vypuštěním hodnoty vrácené základní motor.Zachována kompatibilita TR1.

discard_block_engine Class

Generuje náhodné posloupnosti vypuštěním hodnoty vrácené základní motor.

discrete_distribution Class

Generuje distribuční diskrétní celé číslo.

exponential_distribution Class

Generuje exponenciálního rozdělení.

extreme_value_distribution Class

Generuje distribuci extrémních hodnot.

fisher_f_distribution Class

Generuje rozdělení Fisher F.

gamma_distribution Class

Generuje gama rozdělení.

geometric_distribution Class

Generuje geometrické distribuce.

independent_bits_engine Class

Vygeneruje náhodné posloupnosti s zadaný počet bitů přebalování bitů z hodnoty vrácené základní motor.

linear_congruential Class

Generuje náhodné posloupnosti pomocí lineární congruential algoritmu.Zachována kompatibilita TR1.

linear_congruential_engine Class

Generuje náhodné posloupnosti pomocí lineární congruential algoritmu.

lognormal_distribution Class

Generuje protokol normální rozdělení.

mersenne_twister Class

Generuje náhodné posloupnosti pomocí algoritmu twister Mersenne.Zachována kompatibilita TR1.

mersenne_twister_engine Class

Generuje náhodné posloupnosti pomocí algoritmu twister Mersenne.

negative_binomial_distribution Class

Generuje negativní binomické rozdělení.

normal_distribution Class

Generuje normální rozdělení.

piecewise_constant_distribution Class

Generuje piecewise konstantní distribuce.

piecewise_linear_distribution Class

Generuje piecewise lineární distribuce.

poisson_distribution Class

Generuje Poissonovo rozdělení.

random_device Class

Pomocí externího zařízení generuje náhodné posloupnosti.

seed_seq Class

Ukládá vektorové hodnot celé číslo bez znaménka, které lze zadat náhodného osiva pro náhodné číslo motoru.

shuffle_order_engine Class

Vygeneruje náhodné posloupnosti přeuspořádání hodnot vrácených z jeho základního motoru.

student_t_distribution Class

Generuje Student T rozdělení.

subtract_with_carry Class

Generuje náhodné posloupnosti pomocí algoritmu provádět odečíst.Zachována kompatibilita TR1.

subtract_with_carry_01 Class

Generuje náhodnou sekvenci pomocí pohyblivé čárce odečíst algoritmem provádět.Zachována kompatibilita TR1.

subtract_with_carry_engine Class

Generuje náhodné posloupnosti pomocí algoritmu provádět odečíst.

uniform_int Class

Generuje distribučního jednotných celé číslo.Zachována kompatibilita TR1.

uniform_int_distribution Class

Generuje distribučního jednotných celé číslo.

uniform_real Class

Generuje rovnoměrné s plovoucí desetinnou čárkou.Zachována kompatibilita TR1.

uniform_real_distribution Class

Generuje rovnoměrné s plovoucí desetinnou čárkou.

variate_generator Class

Zalomí motoru a rozdělení.

weibull_distribution Class

Generuje distribuční funkce Weibullova rozdělení.

xor_combine Class

Generuje kombinované distribuce.

Bb982398.collapse_all(cs-cz,VS.110).gifFunkce TypeDef

default_random_engine TypeDef

Zadejte definici pro výchozí modul.

knuth_b TypeDef

Zadejte definici modulu náhodné pořadí.

minstd_rand0 TypeDef

Zadejte definici pro lineární motor congruential.

minstd_rand TypeDef

Zadejte definici pro lineární motor congruential.

mt19937 TypeDef

Zadejte definici modulu twister Mersenne.

mt19937_64 TypeDef

Zadejte definici modulu twister Mersenne.

ranlux_base_01 TypeDef

Definice typu plovoucí desetinnou čárkou pro odečítání s motorem provádět.

ranlux3 TypeDef

Definice typu odečíst s provádět motoru.

ranlux3_01 TypeDef

Definice typu plovoucí desetinnou čárkou pro odečítání s motorem provádět.

ranlux4 TypeDef

Definice typu odečíst s provádět motoru.

ranlux4_01 TypeDef

Definice typu plovoucí desetinnou čárkou pro odečítání s motorem provádět.

ranlux24 TypeDef

Zadejte definici modulu blokování zrušit.

ranlux24_base TypeDef

Definice typu odečíst s provádět motoru.

ranlux48 TypeDef

Zadejte definici modulu blokování zrušit.

ranlux48_base TypeDef

Definice typu odečíst s provádět motoru.

ranlux64_base_01 TypeDef

Definice typu plovoucí desetinnou čárkou pro odečítání s motorem provádět.

Bb982398.collapse_all(cs-cz,VS.110).gifOperátory

operator== <random>

Zkoušky motoru na levé straně operátoru rovna motoru na pravé straně.

operator!= <random>

Zkoušky, jestliže motor na levé straně operátoru není rovno motoru na pravé straně.

operator<< <random>

Zapíše informace o stavu datového proudu.

operator>> <random>

Extrahuje informace z datového proudu.

Bb982398.collapse_all(cs-cz,VS.110).gifFunkce

generate_canonical

Vrátí hodnotu s plovoucí desetinnou čárkou v náhodném pořadí.