numpy.random.
PCG64
用于PCG-64伪随机数生成器的位生成器。
初始化的种子 BitGenerator . 如果没有,那么新的,不可预测的熵将从操作系统中提取。如果 int 或 array_like[ints] 如果通过了,那么它将被传递给 SeedSequence 导出初始值 BitGenerator 州。你也可以通过 SeedSequence 实例。
BitGenerator
int
array_like[ints]
SeedSequence
笔记
PCG-64是O'Neill置换同余发生器的128位实现 ([1], [2]) . PCG-64的周期为 并支持推进任意数量的步骤以及 溪流。如本文所述,我们使用的PCG家族的特定成员是PCG XSL RR 128/64 ([2]) .
PCG64 提供包含生成双精度、无符号32位和64位整数的函数指针的胶囊。它们在Python中不能直接使用,必须由 Generator 或支持低级访问的类似对象。
Generator
支持该方法 advance 向RNG前进的任意步数。PCG-64 RNG的状态由2个128位无符号整数表示。
advance
状态和种子
这个 PCG64 状态向量由2个无符号128位值组成,外部表示为Python int。一个是PRNG的状态,由线性同余发生器(LCG)推进。第二个是LCG中使用的固定奇数增量。
输入种子由 SeedSequence 生成两个值。增量不能独立设置。
平行特征
在并行应用程序中使用位生成器的首选方法是使用 SeedSequence.spawn 方法获取熵值,并使用这些值生成新的位生成器:
SeedSequence.spawn
>>> from numpy.random import Generator, PCG64, SeedSequence >>> sg = SeedSequence(1234) >>> rg = [Generator(PCG64(s)) for s in sg.spawn(10)]
兼容性保证
PCG64 保证一个固定的种子和将始终产生相同的随机整数流。
工具书类
"PCG, A Family of Better Random Number Generators"
奥尼尔,梅丽莎E。 "PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation"
state
获取或设置PRNG状态
advance \(增量)
推进基础RNG,如同已发生增量绘制。
jumped \ [jumps] )
jumped
返回状态为跳跃的新位生成器。
cffi
CFFI接口
ctypes
ctypes接口