【发布时间】:2018-08-18 03:15:31
【问题描述】:
对于同一个种子,为什么 random.random() 与 numpy.random() 相比会产生不同的随机值。我的理解是它们都使用 Mersenne Twister 来生成随机值。
import random as rnd
import numpy as np
rnd.seed(1)
np.random.seed(1)
rnd.random()
np.random.rnd()
0.13436...
0.41702...
【问题讨论】:
-
你为什么希望它们是一样的?即使两者都使用相同的算法,实现也可能存在细微差别。例如,种子的表示方式和使用方式可能会有所不同。
-
例如,当要求使用相同种子的随机数时,MATLAB 将产生与 Numpy 相同的值。我很好奇为什么标准库随机模块没有。
标签: python numpy random mersenne-twister