linear_congruential Class
Génère une séquence aléatoire par l'algorithme congruential linéaire.Conservé pour la compatibilité TR1.Utilisez plutôt linear_congruential_engine Class.
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
};
Paramètres
UIntType
Le type de résultat d'entier non signé.A
Le paramètre du moteur d'Un.C
Le paramètre du moteur C.M
Le paramètre du moteur de M.
Notes
Cette classe de modèle décrit un moteur simple qui produit des valeurs d'un type entier non signé spécifié par l'utilisateur à l'aide de la relation de récurrence x(i) = (A * x(i-1) + C) mod M.L'état du moteur est la dernière valeur retournée, ou la valeur de départ si aucun appel a été passé à operator().
L'argument template UIntType doit être suffisamment grande pour contenir des valeurs jusqu'à M - 1.Les valeurs des arguments template A et C doivent être moins qu' M.
Configuration requise
en-tête : <random>
l'espace de noms : DST
Voir aussi
Référence
linear_congruential::linear_congruential