mersenne_twister_engine – třída
Generuje náhodné posloupnosti vysoce kvalitní založené na algoritmu twister Mersenne celá čísla.
template<class UIntType,
size_t W, size_t N, size_t M, size_t R,
UIntType A, size_t U, UIntType D, size_t S,
UIntType B, size_t T, UIntType C, size_t L, UIntType F>
class mersenne_twister_engine;
Parametry
UIntType
Typ výsledku celého čísla bez znaménka.Možné typy, naleznete v části <random>.W
Word velikost.Velikost každého slova v bitech, stav pořadí.Předpokladem: 2u < W ≤ numeric_limits<UIntType>::digitsN
Uvedena velikost.Počet prvků (hodnot) v sekvenci stavu.M
Posunou velikost.Počet prvků, které mají při každé Zkroutit přeskočit.Předpokladem: 0 < M ≤ NR
Maskování bitů.Předpokladem: R ≤ WA
XOR maska.Předpokladem: A ≤ (1u<<W) - 1uU, S, T, L
Parametry shift Tempering.Použít jako hodnoty posunu při kódování (popouštění).Podmínka: U,S,T,L ≤ WD, B, C
Tempering bit parametry masky.Použít jako hodnoty typu bit maska při kódování (popouštění).Podmínka: D,B,C ≤ (1u<<W) - 1uF
Inicializace násobitel.Použít pro pomoc s inicializace pořadí.Podmínka: F ≤ (1u<<W) - 1u
Členy
mersenne_twister_engine::mersenne_twister_engine |
mersenne_twister_engine::min |
mersenne_twister_engine::discard |
mersenne_twister_engine::operator() |
mersenne_twister_engine::max |
mersenne_twister_engine::seed |
default_seed je členem konstantní, definován jako 5489u, použít jako výchozí hodnotu parametru pro mersenne_twister_engine::seed a konstruktoru jednou hodnotou. |
Další informace o členech stroj, naleznete v části <random>.
Poznámky
Tato třída šablony popisuje náhodné číslo modul vrací hodnoty v intervalu uzavřeno [0, 2W - 1].Obsahuje velkou celočíselnou hodnotu s W * (N - 1) + R bity.Extrahuje W bitů současně z této velké hodnoty a pokud použije všechny bity, přetvoří velkou hodnotu posunem a mícháním bitů tak, aby byly k dispozici nové sady bitů pro extrakci.Stav stroje je poslední NWbitová hodnota, pokud operator() byla volána alespoň N-krát, jinak MWbitové hodnoty, které byly použity a posledních N - M hodnot seedu.
Generátor twists vysokou hodnotu, která obsahuje pomocí registru shift kroucená obecný zpětnou vazbu určené hodnoty posunu N a M, Zkroutit hodnotu R, a podmíněné XOR maska A.Kromě toho jsou bity registru nezpracovanou shift kódována (souvisí) podle matice bit kódování určené hodnoty U, D, S, B, T, C, a L.
Argument šablony UIntType musí být dostatečně velká pro uložení hodnoty až 2W - 1.Hodnoty šablony argumentů musí splňovat následující požadavky: 2u < W, 0 < M, M ≤ N, R ≤ W, U ≤ W, S ≤ W, T ≤ W, L ≤ W, W ≤ numeric_limits<UIntType>::digits, A ≤ (1u<<W) - 1u, B ≤ (1u<<W) - 1u, C ≤ (1u<<W) - 1u, D ≤ (1u<<W) - 1u, and F ≤ (1u<<W) - 1u.
I když generátor z tento modul lze vytvořit přímo, doporučujeme jej, že použijte jednu z předdefinované funkce TypeDef v následující tabulce.
Name |
Popis |
---|---|
mt19937 |
32bitový Mersenne twister modul (Matsumoto a Nishimura, 1998).
|
mt19937_64 |
64 bit Mersenne twister modul (Matsumoto a Nishimura 2000).
|
Podrobné informace o twister algoritmus Mersenne naleznete v článku Wikipedia Mersenne twister.
Příklad
Příklad kódu, naleznete v části <random>.
Požadavky
Záhlaví: < náhodné >
Obor názvů: směrodatné