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
independent_bits_engine::base_type
independent_bits_engine::discard
independent_bits_engine::independent_bits_engine