C++ требуемые свойства: UniformRandomBitGenerator (с C++11)
Генератор равномерных случайных битов — это функция-объект, возвращающая значения целых беззнаковых чисел, при этом каждое значение в диапазоне возможных результатов имеет (в идеале) равную вероятность.
Генераторы равномерных случайных битов не предназначены для использования в качестве генераторов случайных чисел: они используются в качестве источника случайных битов (генерируемых большими блоками для повышения эффективности). Любой генератор равномерных случайных битов может быть подключен к любому распределению случайных чисел для получения случайного числа (формально, случайной величины).
Требования
Тип G удовлетворяет UniformRandomBitGenerator, если
| Учитывая
| (до C++20) |
| Выражение | Тип | Требования |
|---|---|---|
G::min() |
G::result_type |
|
G::max() |
G::result_type |
|
g() |
G::result_type |
|
| Все следующие условия выполняются:
| (с C++20) |
Примечания
Все RandomNumberEngines удовлетворяют этому требованию.
Стандартная библиотека
Следующие средства стандартной библиотеки ожидают тип UniformRandomBitGenerator.
|
(до C++17)(C++11) | случайным образом переупорядочивает элементы в диапазоне (шаблон функции) |
|
(C++17) | выбирает N случайных элементов из последовательности (шаблон функции) |
|
(C++11) | равномерно распределяет вещественные значения заданной точности по [0, 1) (шаблон функции) |
|
(C++11) | генерирует целые значения, равномерно распределенные в диапазоне (шаблон класса) |
|
(C++11) | генерирует вещественные значения, равномерно распределенные в диапазоне (шаблон класса) |
| все остальные распределения случайных чисел | |
Следующие средства стандартной библиотеки удовлетворяют UniformRandomBitGenerator без дополнительного удовлетворения RandomNumberEngine:
|
(C++11) | недетерминированный генератор случайных чисел, использующий источник энтропии оборудования (класс) |
См. также
|
(C++20) | указывает, что тип соответствует генератору равномерных случайных битов (концепция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/UniformRandomBitGenerator