Шаблоны распределения определяют заданный по умолчанию параметр типа шаблона (см. раздел 17.4.2). Для целочисленных распределений по умолчанию принят тип int
; для распределений, генерирующих числа с плавающей запятой, — тип double
.
Конструкторы каждого вида распределения имеют специфические параметры. Некоторые из этих параметров определяют диапазон распределения. В отличие от диапазонов итераторов, эти диапазоны всегда являются инклюзивными (включающими крайние значения).
uniform_int_distribution
uniform_real_distribution
Генерирует значения указанного типа в заданном инклюзивном диапазоне. Параметры m
(или x
) задают наименьшее число, которое может быть возвращено; а параметры n
(или y
) — наибольшее. По умолчанию m
имеет значение 0, a n
— максимально возможное значение, которое способен хранить объект типа intT
. Параметр x
по умолчанию имеет значение 0.0, а y
— 1.0.
bernoulli_distribution b(p);
Возвращает значение true
с вероятностью, заданной параметром p
. По умолчанию параметр p
имеет значение 0.5.
binomial_distribution
Распределение вычисляется для выборочного размера, заданного целочисленным значением t
, с вероятностью p
; по умолчанию t
имеет значение 1, а p
— значение 0.5.
geometric_distribution
Параметр p
задает вероятность возвращения значения true
и по умолчанию имеет значение 0.5.
negative_binomial_distribution
Целочисленное значение k
приближается к решению с вероятностью успеха p
. По умолчанию k
имеет значение 1, а p
— значение 0.5.
poisson_distribution
Распределение относительно значения x
типа double
.
exponential_distribution
Лямбда lam
— значение с плавающей точкой; по умолчанию lam
имеет значение 1.0.
gamma_distribution
Альфа (форма) a
и бета (масштаб) b
; оба по умолчанию имеют значение 1.0.
weibull_distribution
Форма a
и масштаб b
; оба по умолчанию имеют значение 1.0.
extreme_value_distribution
По умолчанию а имеет значение 0.0, a b — значение 1.0.
normal_distribution
Параметр m
— это математическое ожидание, a s
— среднеквадратичное отклонение. По умолчанию m
имеет значение 0.0, a s
— значение 1.0.
lognormal_distribution
Параметр m
— это математическое ожидание, a s
— среднеквадратичное отклонение. По умолчанию m
имеет значение 0.0, a s
— значение 1.0.
chi_squared_distribution
Параметр x
— это степень свободы; по умолчанию имеет значение 1.0.
cauchy_distribution
Область а
по умолчанию имеет значение 0.0, а масштаб b
— значение 1.0.
fisher_f_distribution
m
и n
— степени свободы; оба по умолчанию имеют значения 1.
student_t_distribution
n
— степень свободы; значение по умолчанию — 1.
discrete_distribution
discrete_distribution
i
и j
— итераторы ввода последовательности коэффициентов; il
— заключенный в скобки список коэффициентов. Коэффициенты должны допускать приведение к типу double
.
piecewise_constant_distribution
b
, е
и w
— итераторы ввода.
piecewise_linear_distribution
b
, е
и w
— итераторы ввода.
А.3.2. Процессоры случайных чисел
Библиотека определяет три класса, реализующих различные алгоритмы генерации случайных чисел. Библиотека определяет также три адаптера, модифицирующих созданную последовательность заданным процессором. Классы процессоров и адаптеров являются шаблонами. В отличие от параметров распределений, параметры процессоров сложны и требуют хорошего знания математического механизма, используемого конкретным процессором. Процессоры перечислены здесь только для того, чтобы читатель знал об их существовании, но подробно они в этой книге не рассматриваются.
Библиотека определяет также несколько типов, созданных на базе процессоров и адаптеров. Тип default_random_engine
— это псевдоним типа для одного из классов процессоров, параметризованных переменными, предназначенными для повышения эффективности использования. Библиотека определяет также несколько классов, являющихся полностью специализированными версиями процессора или адаптера. Ниже приведены процессоры и их специализации, определенные библиотекой.
default_random_engine
Псевдоним типа для одного из процессоров, подходящего для большинства задач.