Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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