Генерация псевдослучайных чисел
Материал из cppreference.com
Библиотека случайных чисел предоставляет набор генераторов (как генераторов псевдослучайных чисел, которые генерируют целочисленные последовательности с равномерным распределением, так и настоящих генераторов случайных чисел, если они доступны) и набор классов распределения случайных чисел, которые преобразовывают равномерное распределение движков генерации в различные статистические распределения.
Оригинал:
{{{2}}}
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Все псевдослучайные генераторы могут получить seed(ключ, зерно), число на основании которого происходит генерация. В случае повторного использования с заданным seed-ом последовательность чисел повторится.
Оригинал:
All of the generator engines may be specifically seeded, serialized, and deserialized for use with repeatable simulators.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Генераторы случайных чисел
Генераторы генерируют псевдослучайные числа, используя seed как источник энтропии. Алгоритмы генерации псевдослучайных чисел реализованы в виде шаблонов. Параметры алгоритмов могут быть заданны через параметры шаблонов.
Оригинал:
Random number engines generate pseudo-random numbers using seed data as entropy source. Several different classes of pseudo-random number generation algorithms are implemented as templates that can be customized.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Выбор, какой генератор использовать включает в себя ряд компромиссов: линейный конгруэнтный генератор достаточно быстр и имеет очень небольшие требования к памяти для государства. Отставала Фибоначчи генераторы очень быстро даже на процессорах без расширенные наборы инструкций арифметики, за счет хранения большего состояние, а иногда и менее желательные спектральные характеристики. Вихрь Мерсенна медленнее и имеет большие государственные требования хранения, но с правильными параметрами имеет самую длинную неповторяющуюся последовательность с наиболее желательным спектральные характеристики (для данного определения желательно).
Оригинал:
The choice of which engine to use involves a number of tradeoffs: the linear congruential engine is moderately fast and has a very small storage requirement for state. The lagged Fibonacci generators are very fast even on processors without advanced arithmetic instruction sets, at the expense of greater state storage and sometimes less desirable spectral characteristics. The Mersenne twister is slower and has greater state storage requirements but with the right parameters has the longest non-repeating sequence with the most desirable spectral characteristics (for a given definition of desirable).
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Заголовочный файл
<random> | |
(C++11) |
линейного конгруэнтного реализует алгоритм Оригинал: implements линейного конгруэнтного algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
Мерсенна Twister реализует алгоритм Оригинал: implements Мерсенна Twister algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
орудий вычесть с переносом (отставала Фибоначчи) алгоритм Оригинал: implements subtract with carry (a отставала Фибоначчи) algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
[править] Случайные адаптеры номер двигателя
Случайные адаптеры номер двигателя генерации псевдослучайных чисел с помощью другой случайный номер двигателя, как энтропия источника. Они, как правило, используются для изменения спектральных характеристик основного двигателя.
Оригинал:
Random number engine adaptors generate pseudo-random numbers using another random number engine as entropy source. They are generally used to alter the spectral characteristics of the underlying engine.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Заголовочный файл
<random> | |
(C++11) |
отбрасывает некоторые выходом случайного номер двигателя Оригинал: discards some output of a random number engine Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
пакеты выходного случайного номер двигателя на блоки определенного количества битов Оригинал: packs the output of a random number engine into blocks of specified number of bits Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
обеспечивает выход случайный номер двигателя в различном порядке Оригинал: delivers the output of a random number engine in different order Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
[править] Стандартные генераторы случайных чисел
Несколько конкретных популярных алгоритмов являются предопределенными.
Оригинал:
Several specific popular algorithms are predefined.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Заголовочный файл
<random> | |
Тип | Definition |
minstd_rand0
|
std::linear_congruential_engine<uint_fast32_t, 16807, 0, 2147483647> |
minstd_rand
|
std::linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647> |
mt19937
|
std::mersenne_twister_engine<uint_fast32_t, 32, 624, 397, 31, 0x9908b0df, 11, |
mt19937_64
|
std::mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9, 29, |
ranlux24_base
|
std::subtract_with_carry_engine<uint_fast32_t, 24, 10, 24> |
ranlux48_base
|
std::subtract_with_carry_engine<uint_fast64_t, 48, 5, 12> |
ranlux24
|
std::discard_block_engine<ranlux24_base, 223, 23> |
ranlux48
|
std::discard_block_engine<ranlux48_base, 389, 11> |
knuth_b
|
std::shuffle_order_engine<minstd_rand0, 256> |
default_random_engine
|
Определяется реализацией
Оригинал: implementation-defined Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
недетерминированный генератор случайных чисел использованием аппаратного источника энтропии Оригинал: non-deterministic random number generator using hardware entropy source Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) |
[править] Случайное распределение числа
Случайное распределение числа являются пост-процесс вывода случайной номер двигателя или адаптеров таким образом, что полученная продукция которых распространяется на определенную статистическую функцию плотности вероятности.
Оригинал:
Random number distributions are post-process the output of an random number engine or adaptors in such a way that resulting output is distributed on a defined statistical probability density function.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Заголовочный файл
<random> | |
Оригинал: Uniform distributions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) |
генерирует целочисленные значения, равномерно распределённые по всему диапазону Оригинал: produces integer values evenly distributed across a range Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
производит реальные ценности распределяются равномерно по всему ряду Оригинал: produces real values evenly distributed across a range Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
равномерно распределяет реальные значения заданной точностью по [0, 1) Оригинал: evenly distributes real values of given precision across [0, 1) Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
Оригинал: Bernoulli distributions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) |
генерирует bool значения в соответствии с Распределением Бернулли . Оригинал: produces bool values on a Распределение Бернулли. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) |
(C++11) |
генерирует целочисленнные значения в соответствии с биномиальным распределением . Оригинал: produces integer values on a биномиальное распределение. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
генерирует целочисленные значения в соответствии с отрицательным биномиальным распределением . Оригинал: produces integer values on a отрицательное биномиальное распределение. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) | |
(C++11) |
генерирует целочисленные значения в соответствии с геометрическим распределением . Оригинал: produces integer values on a геометрическое распределение. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Оригинал: Poisson distributions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) |
генерирует целочисленные значения в соответствии с распределением Пуассона . Оригинал: produces integer values on a распределения Пуассона. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с экспоненциальным распределением . Оригинал: produces real values on an экспоненциальное распределение. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с гамма-распределением . Оригинал: produces real values on an гамма-распределение. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с распределением Вейбулла . Оригинал: produces real values on a Вейбулла. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с распределением экстремального значения . Оригинал: produces real values on an распределение экстремального значения. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Оригинал: Normal distributions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) |
генерирует вещественные значения в соответствии с стандартным нормальным (гауссовым) распределением . Оригинал: produces real values on a стандартное нормальное (гауссово) распределение. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с логарифмическим нормальным распределением . Оригинал: produces real values on a логарифмически нормального распределения. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с распределением хи-квадрат . Оригинал: produces real values on a распределение хи-квадрат. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с Распределением Коши . Оригинал: produces real values on a Распределение Коши. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с F-распределением Фишера . Оригинал: produces real values on a F-распределение Фишера. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
(C++11) |
генерирует вещественные значения в соответствии с распределением Стьюдента . Оригинал: produces real values on a распределение Стьюдента. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
Оригинал: Sampling distributions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
(C++11) |
генерирует случайные целочисленные значения в соответствии с дискретным распределением . Оригинал: produces random integers on a discrete distribution. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
генерирует вещественные значения, распределённые на постоянных подынтервалах . Оригинал: produces real values distributed on constant subintervals. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) | |
генерирует вещественные значения, распределённые на определенных подынтервалах. Оригинал: produces real values distributed on defined subintervals. Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
[править] Стандартные генераторы последовательностей seed (начального значения)
Заголовочный файл
<random> | |
(C++11) |
общего назначения, смещения устранения яичницу семян последовательности генератора Оригинал: general-purpose bias-eliminating scrambled seed sequence generator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) |
[править] Библиотеки языка Си
Заголовочный файл
<cstdlib> | |
Генерирует псевдослучайные числа (функция) | |
Инициализирует псевдогенератор случайных чисел (функция) | |
Максимально возможное значение, порожденное std::rand (константа-макрос) |