Udostępnij za pośrednictwem


independent_bits_engine Class

Generuje losowe sekwencje numerów określonej liczbie bitów przez nieodpowiednimi bitów z wartości zwracane przez silnik bazowy.

template<class Engine,
    size_t W, class UIntType>
    class independent_bits_engine {
public:
    typedef Engine base_type;
    typedef typename base_type::result_type result_type;
    independent_bits_engine();
    explicit independent_bits_engine(const base_type& eng);
    explicit independent_bits_engine(result_type x0);
    explicit independent_bits_engine(seed_seq& seq);
    void seed();
    void seed(result_type x0);
    void seed(seed_seq& seq);
    const base_type& base() const;
    static const result_type min();
    static const result_type max();
    result_type operator()();
    void discard(unsigned long long count);
private:
    Engine stored_eng;
    int count;
    };

Parametry

  • Engine
    Typ silnika przechowywane.

  • W
    Parametr w silnika.

  • UIntType
    Typ wyniku liczba całkowita bez znaku.

Uwagi

Zawiera opis tego szablonu klasy <random> daje wartości przez przepakowaniu bity od wartości zwracane przez silnik bazowy.Każdego wynikające W-bitowa wartość składa się z N pola łączone następująco:

  • Pierwszy N0 pól składa zamówienie niski W0 bitów wartości zwracane przez silnik bazowy, które są mniej niż Y0, pakowane w malejąco według istotności.Wartości, które są zbyt duże, są odrzucane.

  • Pozostałe N - N0 pól składa zamówienie niski W0 + 1 bitów wartości zwracane przez silnik bazowy, które są mniej niż Y1, pakowane w malejąco według istotności.Wartości, które są zbyt duże, są odrzucane.

Parametry (inne niż W) są określane następująco:

  • Rjest pełny zakres wartości zwracane przez silnik bazowy (stored_eng.max() - stored_eng.min() + 1, przy założeniu wraparound nie występuje.)

  • Mis floor(log2(R)).

  • Npoczątkowo jest W / M + (W % M != 0).

  • W0is W / N.

  • N0is N - W % N.

  • Y0is (R >> W0) << W0.

  • Y1is (R >> W0 + 1) << W0 + 1.

  • Jeśli Y0 / N < R - Y0 następnie N jest zwiększana i poprzednie cztery parametry są redetermined.

Silnik Państwo jest Państwem stored_eng.Wartość argumentu szablon W musi być większa od zera i nie większa niż liczba bitów w pliku result_type.

Wymagania

Nagłówek: <random>

Obszar nazw: std

Zobacz też

Informacje

<random>

independent_bits_engine::base

independent_bits_engine::base_type

independent_bits_engine::discard

independent_bits_engine::independent_bits_engine

independent_bits_engine::operator()

independent_bits_engine::seed