subtract_with_carry_engine Class
Genera una secuencia aleatoria por el restar con contienen el algoritmo.
template<class UIntType,
int W, int S, int R>
class subtract_with_carry_engine {
public:
typedef UIntType result_type;
static const int word_size = W;
static const int short_lag = S;
static const int long_lag = R;
static const UIntType default_seed = 19780503U;
explicit subtract_with_carry_engine(UIntType x0 = default_seed);
explicit subtract_with_carry_engine(seed_seq& seq);
void seed(UIntType x0 = default_seed);
void seed(seed_seq& seq);
static const result_type min();
static const result_type max();
result_type operator()();
void discard(unsigned long long count)();
};
Parámetros
UIntType
el tipo de resultado entero.W
El parámetro del motor de m.S
El parámetro del motor de s.R
El parámetro del motor de r.
Comentarios
La clase de plantilla describe motor simple que genera valores de entero sin signo definido por el usuario escribe utilizando la relación de frecuencia x(i) = (x(i - R) - x(i - S) - cy(i - 1)) mod M, donde cy(i) tiene el valor 1 si x(i - S) - x(i - R) - cy(i - 1) < 0, si no 0, y M tiene el valor 2W.(Observe que el parámetro W de plantilla aquí reemplaza el parámetro M de plantilla para subtract_with_carry.) El estado del motor es un indicador de tardar varios valores de R .Estos valores se componen de los valores de R el último devueltos si operator() se ha llamado al menos los tiempos de R , si no los valores de N se han devuelto y valores pasados de R - N seed.
El argumento UIntType template debería ser lo bastante grande para contener valores hasta M - 1.Los valores de los argumentos S y R de plantilla deben ser mayores que 0 y S debe ser menor que R.
Requisitos
encabezado: <aleatorio>
espacio de nombres: std
Vea también
Referencia
subtract_with_carry_engine::discard
subtract_with_carry_engine::operator()