Namespaces
Variants

std::discrete_distribution<IntType>:: discrete_distribution

From cppreference.net
discrete_distribution ( ) ;
(1) (начиная с C++11)
template < class InputIt >
discrete_distribution ( InputIt first, InputIt last ) ;
(2) (начиная с C++11)
discrete_distribution ( std:: initializer_list < double > weights ) ;
(3) (начиная с C++11)
template < class UnaryOperation >

discrete_distribution ( std:: size_t count, double xmin, double xmax,

UnaryOperation unary_op ) ;
(4) (начиная с C++11)
explicit discrete_distribution ( const param_type & params ) ;
(5) (начиная с C++11)

Создает новый объект распределения.

1) Конструктор по умолчанию. Создает распределение с единственным весом p = {1 }. Это распределение всегда будет генерировать 0 .
2) Конструирует распределение с весами в диапазоне [ first , last ) . Если first == last , эффект аналогичен конструктору по умолчанию.
3) Конструирует распределение с весами в weights . Фактически вызывает discrete_distribution ( weights. begin ( ) , weights. end ( ) ) .
4) Создает распределение с count весами, которые генерируются с помощью функции unary_op . Каждый из весов равен w i = unary_op(xmin + δ(i + 0.5)) , где δ =
(xmax − xmin)
count
и i ∈ {0, ..., count − 1 }. xmin и xmax должны быть такими, чтобы δ > 0 . Если count == 0 , эффект аналогичен эффекту конструктора по умолчанию.
5) Конструирует распределение с params в качестве параметров распределения.

Параметры

first, last - диапазон элементов, определяющих числа, используемые в качестве весов. Тип элементов, на которые ссылается InputIterator , должен быть конвертируемым в double
weights - список инициализации, содержащий веса
unary_op - функциональный объект унарной операции, который будет применён.

Сигнатура функции должна быть эквивалентна следующей:

Ret fun ( const Type & a ) ;

Сигнатура не обязана содержать const & .
Тип Type должен быть таким, чтобы объект типа double мог быть разыменован и неявно преобразован в Type . Тип Ret должен быть таким, чтобы объект типа double мог быть разыменован и ему присвоено значение типа Ret . ​

params - набор параметров распределения
Требования к типам
-
InputIt должен удовлетворять требованиям LegacyInputIterator .