subtract_with_carry Class
Génère une séquence aléatoire par le soustraire avec présentent des l'algorithme.Conservé pour la compatibilité TR1.Utilisez plutôt subtract_with_carry_engine Class.
template<class IntType,
IntType M, int S, int R>
class subtract_with_carry {
public:
typedef IntType result_type;
typedef subtract_with_carry<IntType, M, S, R> _Myt;
static const IntType modulus = M;
static const IntType default_seed = 19780503U;
static const int short_lag = S;
static const int long_lag = R;
subtract_with_carry();
explicit subtract_with_carry(unsigned long x0 = default_seed);
template<class Gen>
subtract_with_carry(Gen& gen);
subtract_with_carry(const subtract_with_carry& right);
subtract_with_carry(subtract_with_carry& right);
void seed(unsigned long x0 = 19780503UL);
template<class Gen>
void seed(Gen& gen);
result_type min() const;
result_type max() const;
result_type operator()();
};
Paramètres
IntType
Le type de résultat entier.M
Le paramètre du moteur de M.S
Le paramètre du moteur de.R
Le paramètre du moteur de R.
Notes
La classe de modèle décrit un moteur simple qui produit des valeurs d'un type intégral spécifié par l'utilisateur à l'aide de la relation de récurrence x(i) = (x(i - R) - x(i - S) - cy(i - 1)) mod M, où cy(i) a la valeur 1 si x(i - S) - x(i - R) - cy(i - 1) < 0, sinon 0.L'état du moteur a les valeurs d' R de bout retournées si operator() a été appelé au moins les temps d' R , sinon les valeurs d' M qui retournées et les dernières valeurs d' R - M de la valeur de départ.
L'argument template IntType doit être suffisamment grande pour contenir des valeurs jusqu'à M - 1.Les valeurs des arguments template S et R doivent être supérieures à 0 et S doivent être moins qu' R.
Configuration requise
en-tête : <random>
l'espace de noms : DST