subtract_with_carry Class
Genera una sequenza casuale dalla sottrazione portano con l'algoritmo.Mantenuto per compatibilità TR1.In alternativa, utilizzare 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()();
};
Parametri
IntType
Il tipo di risultato intero.M
Il parametro del motore m.S
Il parametro del motore di.R
Il parametro del motore R.
Note
La classe modello descrive un motore semplice che produce valori di un tipo integrale definito utilizzando la relazione per indurre totale x(i) = (x(i - R) - x(i - S) - cy(i - 1)) mod M, dove cy(i) ha il valore 1 se x(i - S) - x(i - R) - cy(i - 1) < 0in caso contrario, 0.Lo stato del motore viene i valori R dell'ultimo restituiti se operator() è stato chiamato almeno tempi R in caso contrario, i valori M che sono stati restituiti e gli ultimi valori R - M inizio.
Un argomento di template IntType deve essere sufficiente per contenere valori fino a M - 1.I valori degli argomenti di modello S e R devono essere maggiori di 0 e S devono essere meno che R.
Requisiti
intestazione: <random>
Spazio dei nomi: deviazione standard