SFC64 小型快速混沌 PRNG#

class numpy.random.SFC64(seed=None)#

Chris Doty-Humphrey 的小型快速混沌 PRNG 的位生成器。

参数:
seed{None, int, array_like[ints], SeedSequence}, 可选

初始化 BitGenerator 的种子。如果为 None,则将从操作系统获取新的、不可预测的熵。如果传递 intarray_like[ints],则将其传递给 SeedSequence 以导出初始 BitGenerator 状态。也可以传入 SeedSequence 实例。

注释

SFC64 是 Chris Doty-Humphrey 的小型快速混沌 PRNG 的 256 位实现 ([1])。 SFC64 有几个不同的循环,具体取决于种子;预期的周期约为 \(2^{255}\) ([2])。 SFC64 集成了一个 64 位计数器,这意味着绝对最小的循环长度为 \(2^{64}\),并且不同的种子至少在 \(2^{64}\) 次迭代内不会相互冲突。

SFC64 提供一个包含函数指针的胶囊,这些函数指针生成双精度浮点数以及无符号 32 位和 64 位整数。这些在 Python 中不能直接使用,必须由支持低级访问的 Generator 或类似对象使用。

状态和种子

SFC64 状态向量由 4 个无符号 64 位值组成。最后一个是每次迭代递增 1 的 64 位计数器。

输入种子由 SeedSequence 处理以生成前 3 个值,然后 SFC64 算法迭代少量次数以进行混合。

兼容性保证

SFC64 保证固定的种子将始终产生相同的随机整数流。

参考文献

状态#

state

获取或设置 PRNG 状态

扩展#

cffi

CFFI 接口

ctypes

ctypes 接口