Перестановный конгруэнтный генератор (64-битный, PCG64)
- class numpy.random.PCG64(seed=None)
-
Битовый генератор для псевдослучайного числа генератора PCG-64.
- Параметры
-
- seed{None, int, array_like[ints], SeedSequence}, optional
-
Семено для инициализации
BitGenerator. Если None, то будет взята свежая, непредсказуемая энтропия из ОС. Если передаетсяintилиarray_like[ints], то она будет переданаSeedSequenceдля вывода начального состоянияBitGenerator. Также можно передать экземплярSeedSequence.
Примечания
PCG-64 — это 128-битная реализация перестановного конгруэнтного генератора О’Нила ([1], [2]). PCG-64 имеет период \(2^{128}\) и поддерживает продвижение на произвольное количество шагов, а также \(2^{127}\) потоков. Конкретный член семейства PCG, который мы используем, — PCG XSL RR 128/64, как описано в статье ([2]).
PCG64предоставляет капсулу с указателями на функции, которые производят числа с плавающей запятой двойной точности, а также целые числа без знака 32 и 64 разряда. Их нельзя напрямую использовать в Python и их нужно использовать сGeneratorили подобным объектом, который поддерживает доступ на низком уровне.Поддерживает метод
advanceдля продвижения ГСЧ на произвольное число шагов. Состояние ГСЧ PCG-64 представлено двумя 128-битными целыми числами без знака.Состояние и Инициализация
Вектор состояния
PCG64состоит из 2-х целых без знака 128-бит, которые внешне представлены целыми числами Python. Одно — состояние ПСЧГ, которое продвигается линейным конгруэнтным генератором (ЛКГ). Второе — фиксированное нечетное приращение, используемое в ЛКГ.Входное семя обрабатывается
SeedSequenceдля генерации обоих значений. Приращение не может быть установлено независимо.Параллельная Генерация
Предпочтительный способ использования BitGenerator в параллельных приложениях — использование метода
SeedSequence.spawnдля получения значений энтропии и использования их для генерации новых BitGenerator:>>> from numpy.random import Generator, PCG64, SeedSequence >>> sg = SeedSequence(1234) >>> rg = [Generator(PCG64(s)) for s in sg.spawn(10)]
Гарантия Совместимости
PCG64гарантирует, что фиксированное семя всегда будет генерировать тот же поток случайных целых чисел.Ссылки
Состояние
Получить или установить состояние ПСЧГ |
Параллельная генерация
| Продвинуть базовый ГСЧ, как если бы произошло delta извлечений. |
| Возвращает новый генератор битов со сдвинутым состоянием. |
Расширение
Интерфейс CFFI | |
Интерфейс ctypes |
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/random/bit_generators/pcg64.html