Sdílet prostřednictvím


linear_congruential_engine – třída

Generuje náhodné pořadí lineární congruential algoritmem.

template<class UIntType, UIntType A, UIntType C, UIntType M> class linear_congruential_engine;

Parametry

  • UIntType
    Výsledný typ číslo bez znaménka.Možné typy, naleznete v části <random>.

  • A
    Násobitel.Předpokladem: oddílu viz poznámky.

  • C
    Přírůstek.Předpokladem: oddílu viz poznámky.

  • M
    Numerického.Předpokladem: naleznete v oddílu Poznámky.

Členy

linear_congruential_engine::linear_congruential_engine

linear_congruential_engine::min

linear_congruential_engine::discard

linear_congruential_engine::operator()

linear_congruential_engine::max

linear_congruential_engine::seed

default_seedje členem konstantní, definován jako 1u, použít jako výchozí hodnotu parametru pro linear_congruential_engine::seed a konstruktoru jednou hodnotou.

Další informace o členech stroj, naleznete v části <random>.

Poznámky

linear_congruential_engine Třída šablony je nejjednodušší generátor stroj, ale není nejrychlejší nebo nejvyšší kvality.Zlepšení nad tento modul je substract_with_carry_engine.Ani jeden z těchto strojů je tak rychle, nebo s jako vysoce kvalitní výsledky, jako mersenne_twister_engine.

Tento modul vytváří hodnoty zadané uživatelem bez znaménka nedílnou typu pomocí vztahu třídy opakování (období) x(i) = (A * x(i-1) + C) mod M.

Pokud M je nulová, je hodnota používaná pro tuto operaci numerického numeric_limits<result_type>::max() + 1.Stav stroje je poslední hodnota vrácená nebo počáteční hodnotu, pokud byly provedeny bez volání operator().

Pokud M není nula hodnot šablony argumentů A a C musí být menší než M.

Přestože generátor z tento modul lze vytvořit přímo, můžete také použít jeden z předdefinovaných funkce TypeDef v následující tabulce.

Name

Popis

minstd_rand0

1988 minimální standardní modul (Lewis, Goodman a Millerová, 1969).

typedef linear_congruential_engine<unsigned int, 16807, 0, 2147483647> minstd_rand0;

minstd_rand

Aktualizované minimální standardní modul minstd_rand0 (Park, Miller a Stockmeyer, 1993).

typedef linear_congruential_engine<unsigned int, 48271, 0, 2147483647> minstd_rand;

Podrobné informace o algoritmus lineární congruential stroj, naleznete v článku Wikipedia lineární congruential generátor.

Požadavky

Záhlaví: < náhodné >

Obor názvů: std

Viz také

Referenční dokumentace

<random>