Spec-Zone.ru › C++

C++ наимённые требования: RandomNumberDistribution (с C++11)

Объект RandomNumberDistribution — это функция-объект, возвращающая случайные числа в соответствии с функцией плотности вероятности p(x) или дискретным распределением вероятностей P(xi).

Требования

Тип D удовлетворяет RandomNumberDistribution, если

  • D удовлетворяет CopyConstructible
  • D удовлетворяет CopyAssignable

Дано

  • T, тип, указанный в D::result_type
  • P, тип, указанный в D::param_type, который
    • удовлетворяет CopyConstructible
    • удовлетворяет CopyAssignable
    • удовлетворяет EqualityComparable
    • имеет конструктор, принимающий такие же аргументы, как каждый из конструкторов D, которые принимают аргументы, соответствующие параметрам распределения.
    • имеет член-функцию с таким же именем, типом и семантикой, как каждая член-функция D, возвращающая параметр распределения
    • объявляет член-тип using distribution_type = D;
  • d, значение типа D
  • x и y, (возможно, константные) значения типа D
  • p, (возможно, константное) значение типа P
  • g, g1, g2, ссылки на значения типа, удовлетворяющего UniformRandomBitGenerator
  • os, ссылка на специализацию std::basic_ostream
  • is, ссылка на специализацию std::basic_istream

Следующие выражения должны быть допустимы и иметь указанное влияние

Выражение Тип Примечания Сложность
D::result_type T Арифметический тип Время компиляции
D::param_type P Время компиляции
D() Создаёт распределение, неотличимое от любого другого распределения, созданного по умолчанию, D Постоянная
D(p) Создаёт распределение, неотличимое от D, построенного непосредственно из значений, использованных для построения p Такая же, как у p при построении
d.reset() void Сбрасывает внутреннее состояние распределения. Следующий вызов operator() для d не будет зависеть от значений, сгенерированных любым генератором до reset() Постоянная
x.param() P Возвращает p так, что D(p).param() == p Не хуже, чем D(p)
d.param(p) void Постусловие: d.param() == p Не хуже, чем D(p)
d(g) T Последовательность чисел, возвращаемых последовательными вызовами этой функции с тем же g, распределена случайно в соответствии с параметрами распределения, заданными в d.param() Амортизированное постоянное число вызовов g
d(g,p) T Последовательность чисел, возвращаемых последовательными вызовами этой функции с тем же g, распределена случайно в соответствии с параметрами распределения, заданными в p Амортизированное постоянное число вызовов g
x.min() T Наименьшая нижняя граница значений, которые потенциально могут быть возвращены x’s operator(), определяемая текущими значениями параметров x Постоянная
x.max() T Наибольшая верхняя граница значений, которые потенциально могут быть возвращены x’s operator(), определяемая текущими значениями параметров x Постоянная
x == y bool Устанавливает отношение эквивалентности. Возвращает true если x.param() == y.param() и бесконечные будущие последовательности значений, которые были бы сгенерированы повторными вызовами x(g1) и y(g2) были бы равны, при условии, что g1 == g2 Постоянная
x != y bool !(x == y) Постоянная
os << x Ссылка на тип os Записывает текстовое представление параметров распределения и внутреннего состояния в os. Флаги форматирования и символ заполнения os не изменяются
is >> d Ссылка на тип is Восстанавливает параметры распределения и внутреннее состояние данными, прочитанными из is. Флаги форматирования is не изменяются. Данные должны быть записаны с помощью потока с тем же регионом, CharT и Traits параметрами шаблона потока, в противном случае поведение неопределено. При возникновении плохих входных данных вызывается is.setstate(std::ios::failbit), который может выбросить std::ios_base::failure. d в этом случае не меняется

Примечания

Параметры объекта распределения могут быть изменены либо постоянно, используя d.param(p), либо только на время одного вызова оператора(), используя d(g,p).

Вызовы константных член-функций распределения и os << d не влияют на последовательность чисел, производимую повторными вызовами d(g).

Стандартная библиотека

Следующие компоненты стандартной библиотеки удовлетворяют RandomNumberDistribution

uniform_int_distribution
(C++11)
генерирует целые значения, равномерно распределённые в заданном диапазоне
(шаблон класса)
uniform_real_distribution
(C++11)
генерирует вещественные значения, равномерно распределённые в заданном диапазоне
(шаблон класса)
bernoulli_distribution
(C++11)
генерирует значения по распределению Бернулли
(класс)
binomial_distribution
(C++11)
генерирует целые значения по биномиальному распределению
(шаблон класса)
negative_binomial_distribution
(C++11)
генерирует целые значения по отрицательному биномиальному распределению
(шаблон класса)
geometric_distribution
(C++11)
генерирует целые значения по геометрическому распределению
(шаблон класса)
poisson_distribution
(C++11)
генерирует целые значения по распределению Пуассона
(шаблон класса)
exponential_distribution
(C++11)
генерирует вещественные значения по экспоненциальному распределению
(шаблон класса)
gamma_distribution
(C++11)
генерирует вещественные значения по гамма-распределению
(шаблон класса)
weibull_distribution
(C++11)
генерирует вещественные значения по распределению Вейбулла
(шаблон класса)
extreme_value_distribution
(C++11)
генерирует вещественные значения по распределению экстремальных значений
(шаблон класса)
normal_distribution
(C++11)
генерирует вещественные значения по стандартному нормальному (гауссовому) распределению
(шаблон класса)
lognormal_distribution
(C++11)
генерирует вещественные значения по логарифмически нормальному распределению
(шаблон класса)
chi_squared_distribution
(C++11)
генерирует вещественные значения по распределению хи-квадрат
(шаблон класса)
cauchy_distribution
(C++11)
генерирует вещественные значения по распределению Коши
(шаблон класса)
fisher_f_distribution
(C++11)
генерирует вещественные значения по F-распределению Фишера
(шаблон класса)
student_t_distribution
(C++11)
генерирует вещественные значения по t-распределению Стьюдента
(шаблон класса)
discrete_distribution
(C++11)
генерирует случайные целые числа по дискретному распределению
(шаблон класса)
piecewise_constant_distribution
(C++11)
генерирует вещественные значения, распределённые на постоянных подынтервалах
(шаблон класса)
piecewise_linear_distribution
(C++11)
генерирует вещественные значения, распределённые на определённых подынтервалах
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/RandomNumberDistribution

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API