subtract_with_carry_engine Class
Generuje losowe przez odejmowanie za pomocą algorytmu carry.
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)();
};
Parametry
UIntType
Typ wyniku całkowitą.W
Parametr m silnika.S
Parametr silnika S.R
Parametr silnika R.
Uwagi
Szablon decribes klasy prosty silnik daje wartości określone przez użytkownika niepodpisane integralną typu przy użyciu relacji ponownego x(i) = (x(i - R) - x(i - S) - cy(i - 1)) mod M, gdzie cy(i) ma wartość 1 Jeśli x(i - S) - x(i - R) - cy(i - 1) < 0, inaczej 0, i M ma wartość 2W.(Należy zauważyć, że parametr szablonu W tutaj zastępuje parametr szablonu M do subtract_with_carry.) Stan silnika jest carry wskaźnik plus R wartości.Wartości te składają się z ostatniego R Jeśli zwracane wartości operator() została wywołana co najmniej R razy inaczej N wartości, które zostały zwrócone i ostatniego R - N wartości materiału siewnego.
Argument szablonu UIntType musi być wystarczająco duży, aby pomieścić do wartości M - 1.Wartości argumentów szablonu S i R musi być większa niż 0 i S musi być mniejsza niż R.
Wymagania
Nagłówek: <random>
Obszar nazw: std
Zobacz też
Informacje
subtract_with_carry_engine::discard
subtract_with_carry_engine::operator()