- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Язык программирования C++. Пятое издание - Стенли Липпман
Шрифт:
Интервал:
Закладка:
adjacent_difference(beg, end, dest)
adjacent_difference(beg, end, dest, binaryOp)
Пишет в dest новую последовательность, каждое значение элемента которой, кроме первого, представляет собой разницу между текущими и предыдущим элементами. Первая версия использует оператор - тип элемента, а вторая применяет заданный бинарный оператор.
iota(beg, end, val)
Присваивает val первому элементу и осуществляет приращение val. Присваивает приращенное значение следующему элементу и снова осуществляет приращение val, а затем присваивает приращенное значение следующему элементу последовательности. Продолжает приращение val и присваивает новое значение последующему элементу в исходной последовательности.
A.3. Случайные числа
Библиотека определяет набор классов процессоров случайных чисел и адаптеров, использующих различные математические подходы для генерации псевдослучайных чисел. Библиотека определяет также набор шаблонов распределений, обеспечивающих распределение чисел согласно различным вероятностям. Имена классов процессоров и распределений соответствуют их математическим свойствам.
Подробности генерации чисел этими классами не рассматриваются в данном издании. Здесь перечислены типы процессоров и распределений, но чтобы лучше узнать, как их использовать, следует обратиться к другим ресурсам.
А.3.1. Распределение случайных чисел
За исключением распределения bernoulli_distribution, всегда генерирующего логические значения, типы распределений являются шаблонами. Каждый из этих шаблонов получает один параметр типа, задающий тип генерируемого распределением результата.
Классы распределений отличаются от других использованных ранее шаблонов класса, поскольку типы распределения налагают ограничения на пригодные для использования типы. Некоторые шаблоны распределения применяются для генерации только чисел с плавающей запятой; другие применяются для генерации только целых чисел.
В описаниях ниже для указания типа генерируемых шаблоном распределения чисел, например с плавающей запятой, используется формат имя_шаблона<RealT>. Для таких шаблонов вместо RealT можно использовать типы float, double или long double. Точно так же вместо IntT можно использовать любой из встроенных целочисленных типов (short, int, long, long long, unsigned short, unsigned int, unsigned long или unsigned long long), но не тип bool или char.
Шаблоны распределения определяют заданный по умолчанию параметр типа шаблона (см. раздел 17.4.2). Для целочисленных распределений по умолчанию принят тип int; для распределений, генерирующих числа с плавающей запятой, — тип double.
Конструкторы каждого вида распределения имеют специфические параметры. Некоторые из этих параметров определяют диапазон распределения. В отличие от диапазонов итераторов, эти диапазоны всегда являются инклюзивными (включающими крайние значения).
Равномерное распределениеuniform_int_distribution<IntT> u(m, n);
uniform_real_distribution<RealT> u(x, y);
Генерирует значения указанного типа в заданном инклюзивном диапазоне. Параметры 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<IntT> b(t, p);
Распределение вычисляется для выборочного размера, заданного целочисленным значением t, с вероятностью p; по умолчанию t имеет значение 1, а p — значение 0.5.
geometric_distribution<IntT> g(p);
Параметр p задает вероятность возвращения значения true и по умолчанию имеет значение 0.5.
negative_binomial_distribution<IntT> nb(k, p);
Целочисленное значение k приближается к решению с вероятностью успеха p. По умолчанию k имеет значение 1, а p — значение 0.5.
Распределение Пуассонаpoisson_distribution<IntT> p(х);
Распределение относительно значения x типа double.
exponential_distribution<RealT> e(lam);
Лямбда lam — значение с плавающей точкой; по умолчанию lam имеет значение 1.0.
gamma_distribution<RealT> g(a, b);
Альфа (форма) a и бета (масштаб) b; оба по умолчанию имеют значение 1.0.
weibull_distribution<RealT> w(a, b);
Форма a и масштаб b; оба по умолчанию имеют значение 1.0.
extreme_value_distribution<RealT> е(а, b);
По умолчанию а имеет значение 0.0, a b — значение 1.0.
Нормальное распределение или распределение Гауссаnormal_distribution<RealT> n(m, s);
Параметр m — это математическое ожидание, a s — среднеквадратичное отклонение. По умолчанию m имеет значение 0.0, a s — значение 1.0.
lognormal_distribution<RealT> ln(m, s);
Параметр m — это математическое ожидание, a s — среднеквадратичное отклонение. По умолчанию m имеет значение 0.0, a s — значение 1.0.
chi_squared_distribution<RealT> c(x);
Параметр x — это степень свободы; по умолчанию имеет значение 1.0.
cauchy_distribution<RealT> c(a, b);
Область а по умолчанию имеет значение 0.0, а масштаб b — значение 1.0.
fisher_f_distribution<RealT> f(m, n);
m и n — степени свободы; оба по умолчанию имеют значения 1.
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_engineminstd_rand0 — имеет множитель 16807, модуль 2147483647 и приращение 0.
minstd_rand — имеет множитель 48271, модуль 2147483647 и приращение 0.
Тип mersenne_twister_enginemt19937 — 32-разрядный беззнаковый генератор вихря Мерсенна.
mt19937_64 — 64-разрядный беззнаковый генератор вихря Мерсенна.
Тип subtract_with_carry_engineranlux24_base — 32-разрядный беззнаковый генератор вычитания с переносом.
ranlux48_base — 64-разрядный беззнаковый генератор вычитания с переносом.
Тип discard_block_engineАдаптер процессора, отбрасывающий результаты базового процессора. Параметризуется базовым процессором для размера используемого блока и размера использованных блоков.
ranlux24 — использует процессор ranlux24_base с размером блока 223 и размером использованных блоков 23.
ranlux48 — использует процессор ranlux48_base с размером блока 389 и размером использованных блоков 11.
Тип independent_bits_engineАдаптер процессора, генерирующий числа с заданным количеством битов. Параметризован базовым процессором для использования количества битов, генерируемых в его результатах, и целочисленным беззнаковым типом, используемым для содержания созданных битов. Определяемое количество битов должно быть меньше количества цифр, которое может содержать заданный беззнаковый тип.

