Classe discard_block
Descarta partes de uma sequência aleatória.
template<class Engine,
int P, int R>
class discard_block {
public:
typedef discard_block<Engine, P, R> _MyT;
typedef Engine base_type;
typedef typename base_type::result_type result_type;
static const int block_size = P;
static const int used_block = R;
discard_block();
discard_block(const discard_block& right);
discard_block(discard_block& right);
explicit discard_block(const base_type& eng);
explicit discard_block(result_type seed);
template<class Gen>
discard_block(Gen& gen);
void seed();
template<class Gen>
void seed(Gen& gen);
const base_type& base() const;
result_type min() const;
result_type max() const;
result_type operator()();
private:
Engine stored_eng; // exposition only
int count; // exposition only
};
Parâmetros
Engine
O tipo de mecanismo aleatório armazenado.P
O dimensionar do bloco total.R
O dimensionar do bloco utilizado.
Comentários
O modelo de classe decribes um mecanismo composto que produz valores descartando alguns dos valores retornados pelo seu mecanismo de base.Cada ciclo do mecanismo composto inicia retornando R valores sucessivamente gerados pelo mecanismo de base e extremidades descartando P - R Esses valores. Estado do mecanismo é o estado de stored_eng seguido do número de chamadas para operator() que tenham ocorrido desde o início do ciclo corrente.
O valor do argumento de modelo R deve ser menor ou igual ao valor do argumento modelo P.
Requisitos
Cabeçalho:<random>
Namespace: std::tr1