independent_bits_engine Class
Gera uma seqüência aleatório de números com um número especificado de bits reembalando bit dos valores retornados pelo mecanismo base.
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;
};
Parâmetros
Engine
O tipo do mecanismo armazenado.W
O parâmetro do mecanismo de W.UIntType
O tipo do resultado inteiro sem sinal de.
Comentários
Esta classe de modelo descreve <random> que produz valores reembalando bit dos valores retornados pelo mecanismo base.Cada W- o valor resultante consiste nos campos de bits de N combinados como segue:
Os primeiros campos de N0 consistem nos bits de W0 de ordem baixa dos valores retornados pelo mecanismo base que é menor que Y0, empacotado em ordem decrescente de significado.Os valores que são muito grandes são descartados.
Os campos restantes de N - N0 consistem nos bits de W0 + 1 de ordem baixa dos valores retornados pelo mecanismo base que é menor que Y1, empacotado em ordem decrescente de significado.Os valores que são muito grandes são descartados.
Os parâmetros (diferente W) são determinados como segue:
R é o intervalo de valores completo retornado pelo mecanismo base (stored_eng.max() - stored_eng.min() + 1, não supondo que nenhum wraparound ocorre.)
M é floor(log2(R)).
N é inicialmente W / M + (W % M != 0).
W0 é W / N.
N0 é N - W % N.
Y0 é (R >> W0) << W0.
Y1 é (R >> W0 + 1) << W0 + 1.
Se Y0 / N < R - Y0N é incrementado o e os quatro parâmetros anteriores redetermined.
O estado do mecanismo é o estado de stored_eng.O valor do argumento W de modelo deve ser maior que zero e não maior que o número de bits representável em result_type.
Requisitos
Cabeçalho: <random>
namespace: STD
Consulte também
Referência
independent_bits_engine::base_type
independent_bits_engine::discard
independent_bits_engine::independent_bits_engine