Partilhar via


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

Consulte também

Referência

<random>

Classe linear_congruential