Генерация псевдослучайных чисел
Материал из cppreference.com
Библиотека случайных чисел предоставляет набор генераторов (как генераторов псевдослучайных чисел, которые генерируют целочисленные последовательности с равномерным распределением, так и настоящих генераторов случайных чисел, если они доступны) и набор классов распределения случайных чисел, которые преобразовывают равномерное распределение движков генерации в различные статистические распределения.
Оригинал:
{{{2}}}
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Все псевдослучайные генераторы могут получить seed(ключ, зерно), число на основании которого происходит генерация. В случае повторного использования с заданным seed-ом последовательность чисел повторится.
Оригинал:
All of the generator engines may be specifically seeded, serialized, and deserialized for use with repeatable simulators.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Генераторы случайных чисел
Случайное число двигателей генерации псевдослучайных чисел с использованием семени данных, как энтропия источника. Несколько различных классов псевдослучайных алгоритмов номер поколения реализованы в виде шаблонов, которые могут быть настроены.
Оригинал:
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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Выбор, какой двигатель использовать включает в себя ряд компромиссов: линейный конгруэнтный двигатель достаточно быстро и имеет очень небольшие требования к памяти для государства. Отставала Фибоначчи генераторы очень быстро даже на процессорах без расширенные наборы инструкций арифметики, за счет хранения большего состояние, а иногда и менее желательные спектральные характеристики. Мерсенна Twister медленнее и имеет большие государственные требования хранения, но с правом параметров имеет самую длинную неповторяющиеся последовательности с наиболее желательным спектральные характеристики (для данного определения желательно).
Оригинал:
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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон класса) |
[править] Стандартные генераторы последовательностей семян
Заголовочный файл
<random> | |
(C++11) |
общего назначения, смещения устранения яичницу семян последовательности генератора Оригинал: general-purpose bias-eliminating scrambled seed sequence generator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (класс) |
[править] C библиотеки
Заголовочный файл
<cstdlib> | |
генерирует псевдослучайных чисел Оригинал: generates a pseudo-random number Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) | |
инициализирует псевдо-генератор случайных чисел Оригинал: initializes pseudo-random number generator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) | |
Максимально возможное значение порожденных std::rand Оригинал: maximum possible value generated by std::rand Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (константа-макрос) |