Udostępnij za pośrednictwem


linear_congruential_engine — Klasa

Generuje losowe sekwencje liniowo algorytm congruential.

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

Parametry

  • UIntType
    Typ wyniku liczba całkowita bez znaku.Dla typów możliwych, zobacz <random>.

  • A
    Mnożnik.Warunek wstępny: Zobacz uwagi sekcji.

  • C
    Przyrost.Warunek wstępny: Zobacz uwagi sekcji.

  • M
    Moduł.Warunek wstępny: Zobacz uwagi.

Elementy członkowskie

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_seedjest elementem członkowskim stałej, zdefiniowany jako 1u, jest używana jako domyślna wartość parametru linear_congruential_engine::seed i konstruktora pojedynczej wartości.

Więcej informacji na temat aparatu elementów członkowskich w temacie <random>.

Uwagi

linear_congruential_engine Klasy szablonu jest najprostszym aparat generator, ale nie najszybciej lub najwyższej jakości.Poprawy jakości przez ten aparat jest substract_with_carry_engine.Żadna z tych aparatów wypada nie szybko z jako wynik wysokiej jakości jako mersenne_twister_engine.

Ten aparat tworzy wartości określone przez użytkownika bez znaku integralną typu przy użyciu relacji cyklu (okresu) x(i) = (A * x(i-1) + C) mod M.

Jeśli M wynosi zero, wartość używana dla tej operacji modułu jest numeric_limits<result_type>::max() + 1.Stan przez aparat jest ostatnią wartość zwracana, lub wartość początkową, jeśli nie można było nie wywołaniu operator().

Jeśli M jest nie jest zerowa, wartości argumentów szablonu A i C musi być mniejsza niż M.

Mimo to można skonstruować bezpośrednio generator z tego aparatu umożliwia także jeden z wstępnie zdefiniowanych definicje typów w poniższej tabeli.

Nazwa

Opis

minstd_rand0

1988 minimalne standardowe aparat (Lewis Goodman i Miller, 1969).

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

minstd_rand

Zaktualizowanego aparatu standardowe minimalne minstd_rand0 (wstrzymywanie Miller i Stockmeyer, 1993).

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

Aby uzyskać szczegółowe informacje dotyczące algorytm liniowo aparat congruential, zobacz artykuł Wikipedia liniowo generator congruential.

Wymagania

Nagłówek: < losowe >

Przestrzeń nazw: std

Zobacz też

Informacje

<random>