Литвек - электронная библиотека >> Жози Лажойе и др. >> C, C++, C# и др. >> Язык программирования C++ >> страница 386
student_t_distribution<RealT> s(n);

n — степень свободы; значение по умолчанию — 1.

Выборочное распределение
discrete_distribution<IntT> d(i, j);

discrete_distribution<IntT> d{il};

i и j — итераторы ввода последовательности коэффициентов; il — заключенный в скобки список коэффициентов. Коэффициенты должны допускать приведение к типу double.

piecewise_constant_distribution<RealT> pc(b, е, w);

b, е и w — итераторы ввода.

piecewise_linear_distribution<RealT> pl(b, е, w);

b, е и w — итераторы ввода.

А.3.2. Процессоры случайных чисел

Библиотека определяет три класса, реализующих различные алгоритмы генерации случайных чисел. Библиотека определяет также три адаптера, модифицирующих созданную последовательность заданным процессором. Классы процессоров и адаптеров являются шаблонами. В отличие от параметров распределений, параметры процессоров сложны и требуют хорошего знания математического механизма, используемого конкретным процессором. Процессоры перечислены здесь только для того, чтобы читатель знал об их существовании, но подробно они в этой книге не рассматриваются.

Библиотека определяет также несколько типов, созданных на базе процессоров и адаптеров. Тип default_random_engine — это псевдоним типа для одного из классов процессоров, параметризованных переменными, предназначенными для повышения эффективности использования. Библиотека определяет также несколько классов, являющихся полностью специализированными версиями процессора или адаптера. Ниже приведены процессоры и их специализации, определенные библиотекой.

Тип default_random_engine
Псевдоним типа для одного из процессоров, подходящего для большинства задач.

Тип linear_congruential_engine
minstd_rand0 — имеет множитель 16807, модуль 2147483647 и приращение 0.

minstd_rand — имеет множитель 48271, модуль 2147483647 и приращение 0.

Тип mersenne_twister_engine
mt19937 — 32-разрядный беззнаковый генератор вихря Мерсенна.

mt19937_64 — 64-разрядный беззнаковый генератор вихря Мерсенна.

Тип subtract_with_carry_engine
ranlux24_base — 32-разрядный беззнаковый генератор вычитания с переносом.

ranlux48_base — 64-разрядный беззнаковый генератор вычитания с переносом.

Тип discard_block_engine
Адаптер процессора, отбрасывающий результаты базового процессора. Параметризуется базовым процессором для размера используемого блока и размера использованных блоков.

ranlux24 — использует процессор ranlux24_base с размером блока 223 и размером использованных блоков 23.

ranlux48 — использует процессор ranlux48_base с размером блока 389 и размером использованных блоков 11.

Тип independent_bits_engine
Адаптер процессора, генерирующий числа с заданным количеством битов. Параметризован базовым процессором для использования количества битов, генерируемых в его результатах, и целочисленным беззнаковым типом, используемым для содержания созданных битов. Определяемое количество битов должно быть меньше количества цифр, которое может содержать заданный беззнаковый тип.

Тип shuffle_order_engine
Адаптер процессора, возвращающий те же числа, что и его базовый процессор, но в другой последовательности. Параметризован базовым процессором и количеством переставляемых элементов.

knuth_b — использует процессор minstd_rand0 с размером таблицы 256.


1

На самом деле препроцессору. Компилятор получит готовый промежуточный файл, в состав которого войдет содержимое подключенной библиотеки. — Примеч. ред.

(обратно)

2

А также для временного отключения больших фрагментов кода при отладке. — Примеч. ред.

(обратно)

3

Согласно другой трактовке, исключение — это объект системного или пользовательского класса, создаваемого операционной системой или кодом программы в ответ на обстоятельства, либо не допускающие дальнейшего нормального выполнения программы, либо определенные пользователем. Обработка исключений в приложении позволяет корректно выйти из затруднительной ситуации. — Примеч. ред.

(обратно)

4

Здесь и везде в оригинале именно adaptor, а не adapter. — Примеч. ред.

(обратно)