Classe linear_congruential
Gera uma sequência aleatória pelo algoritmo congruential linear.
template<class UIntType,
UIntType A, UIntType C, UIntType M>
class linear_congruential {
public:
typedef linear_congruential<UIntType, A, C, M> _MyT;
typedef UIntType result_type;
static const UIntType multiplier = A;
static const UIntType increment = C;
static const UIntType modulus = M;
static const UIntType default_seed = 1U;
explicit linear_congruential(UIntType x0 = default_seed)
linear_congruential(const linear_congruential& right);
linear_congruential(linear_congruential& right);
template<class Gen>
linear_congruential(Gen& gen);
void seed(UIntType x0 = default_seed);
template<class Gen>
void seed(Gen& gen);
result_type min() const;
result_type max() const;
result_type operator()();
private:
result_type stored_value; // exposition only
};
Parâmetros
UIntType
O tipo de resultado inteiro sem sinal.A
O parâmetro de mecanismo A.C
O parâmetro C mecanismo.M
O parâmetro de mecanismo M.
Comentários
A classe de modelo descreve um mecanismo simples que produz valores de um especificado pelo usuário não assinado integral tipo usando a recorrência relação x(i) = (A * x(i-1) + C) mod M. Estado do mecanismo é o último valor retornado ou o valor semente não se foi feita nenhuma telefonar operator().
O argumento de modelo UIntType deve ser grande o suficiente para armazenar valores até M - 1. Os valores de argumentos de modelo A e C deve ser menor que M.
Requisitos
Cabeçalho:<random>
Namespace: std::tr1