discrete_distribution::discrete_distribution
Формирует распределение.
// default constructor discrete_distribution(); // constructs using a range of weights, [firstW, lastW) template<class InputIterator> discrete_distribution(InputIterator firstW, InputIterator lastW); // constructs using an initializer list for range of weights discrete_distribution(initializer_list<double> weightlist); // constructs using unary operation function template<class UnaryOperation> discrete_distribution(size_t count, double xmin, double xmax, UnaryOperation weightfunc); // constructs from an existing param_type structure explicit discrete_distribution(const param_type& parm);
Параметры
firstW
Первый итератор в списке, на основе которого формируется распределение.lastW
Последний итератор в списке, на основе которого формируется распределение (неинклюзивный список, так как итераторы используют пустой элемент в качестве последнего элемента).weightlist
Объект initializer_list, из которого формируется распределение.count
Количество элементов в диапазоне распределения. Если count==0, то эквивалентно конструктору по умолчанию (всегда формируется 0).minx
Минимальное значение в диапазоне распределения.maxw
Максимальное значение в диапазоне распределения.weightfunc
Объект, представляющий функцию вероятности распределения. Параметр и возвращаемое значение должны поддерживать преобразование в тип double.parm
Структура параметров, используемая для формирования распределения.
Заметки
Конструктор по умолчанию создает объект, значение вероятности которого содержит один элемент со значением 1. Это приводит к получению распределения, которое всегда возвращает 0.
Конструктор диапазона итератора
template<class InputIterator>
discrete_distribution(InputIterator firstW, InputIterator lastW);
создает объект распределения с весами от итераторов в последовательности интервала [firstI, lastI).
Конструктор списка инициализаторов
discrete_distribution(initializer_list<double> weightlist);
создает объект распределения с весами из списка инициализаторов weightlist.
Конструктор, определенный как
template<class UnaryOperation>
discrete_distribution(size_t count, double xmin, double xmax, UnaryOperation funcweight);
, создает объект распределения, сохраненное значение вероятности которого инициализируется по следующим правилам. Если count < 1, то n = 1 и т. д., то эквивалентно конструктору по умолчанию (всегда формируется 0). Если count > 0, то n = count. Если 0 < d = (maxw - minw)/n, с использованием d одинаковых поддиапазонов каждый вес назначается следующим способом: weightk = weightfunc(x), где x = xmin + k * d + d/2, для k = 0, ..., n - 1.
Конструктор, определенный как
explicit discrete_distribution(const param_type& parm);
, создает объект распределения, используя parm как сохраненную структуру параметров.
Требования
Заголовок: <random>
Пространство имен: std