Sdílet prostřednictvím


independent_bits_engine Class

Generuje náhodné posloupnosti čísel s zadaný počet bitů v opětovné bitů z hodnoty vrácené základní motor.

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 motoru uložených.

  • W
    Parametr w motoru.

  • UIntType
    Výsledek typu celé číslo bez znaménka.

Poznámky

Popisuje šablony třídy <random> hodnoty, která vyvolává podle přebalování bitů z hodnoty vrácené základní motor.Každý vyplývající W-bit hodnota se skládá z N kombinované pole takto:

  • První N0 pole jsou tvořeny nejnižší W0 bity hodnoty vrácené základní motor, které jsou menší než Y0, balené v sestupném pořadí podle významnosti.Hodnoty, které jsou příliš velké, jsou zahozeny.

  • Zbývající N - N0 pole jsou tvořeny nejnižší W0 + 1 bity hodnoty vrácené základní motor, které jsou menší než Y1, balené v sestupném pořadí podle významnosti.Hodnoty, které jsou příliš velké, jsou zahozeny.

Parametry (jiné než W) se stanoví takto:

  • Rje plný rozsah hodnoty vrácené základního motoru (stored_eng.max() - stored_eng.min() + 1, za předpokladu, že žádná wraparound dojde.)

  • M je floor(log2(R)).

  • NZpočátku je W / M + (W % M != 0).

  • W0 je W / N.

  • N0 je N - W % N.

  • Y0 je (R >> W0) << W0.

  • Y1 je (R >> W0 + 1) << W0 + 1.

  • Pokud Y0 / N < R - Y0 pak N je zvýšen a předchozí čtyři parametry jsou redetermined.

Stav je stav stroje stored_eng.Hodnota argumentu šablony W musí být větší než nula a není větší než počet bitů reprezentovat result_type.

Požadavky

Záhlaví: <random>

Obor názvů: std

Viz také

Referenční dokumentace

<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