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