Генератор перестановки (64-битный, PCG64)
- classnumpy.random.PCG64(seed=None)
-
BitGenerator для псевдослучайного генератора PCG-64.
- Параметры:
-
- seed{None, int, array_like[ints], SeedSequence}, необязательно
-
Зерно для инициализации
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. Одно — состояние ГСЧ, которое продвигает линейный конгруэнтный генератор (LCG). Второе — фиксированное нечётное приращение, используемое в LCG.Входное зерно обрабатывается
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гарантирует, что фиксированное зерно всегда будет производить один и тот же поток случайных целых чисел.Ссылки
Состояние
Получение или установка состояния ГСЧ |
Параллельная генерация
Расширение
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/random/bit_generators/pcg64.html