Поделиться через


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

См. также

Ссылки

<random>

Класс discrete_distribution