numpy.random.seed的最大值

acruukt9  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(120)

我们可以改变numpy.random.seed的最大可能值吗?通常,种子取0到2^{32}-1的值。我想让它去2^{64}-1。有什么办法可以做到这一点吗?
我担心修改mtrand.pyx中种子的最大值是否与Python安装示例的其余部分兼容。我更改了上限,但似乎种子值仍然没有超过2^{32} - 1,而是在达到上限后从0开始重复。

p8ekf7hl

p8ekf7hl1#

请注意,对于现代伪随机数生成器,the seed and the state are related but different concepts。设置种子将实现可重复性,但要进行完全控制,您需要状态。
使用seed()接口意味着您将在传统模式下生成伪随机数(以保持与旧版本的numpy的向后兼容性),并被限制为单个整数的状态控制。目前的建议是,您应该基于更新的Generator方法编写新代码。该链接中有很多文档告诉您如何实现可重复的随机流,以及如何安全地构建多个可重复的流以进行并行化。
如果您坚持使用传统模式,并且确实认为需要完全控制Mersenne Twister的状态,则可以使用set_state,它可以让您控制完整的19937位内部状态。

相关问题