【发布时间】:2022-01-06 10:38:51
【问题描述】:
如何在 Python 和 Matlab 中获得相同的随机数?
例如,我的 Matlab 代码使用给定的种子打印随机整数 1 和 2:
>> rng(1);
>> randi(2,1,10)
ans =
1 2 1 1 1 1 1 1 1 2
但是,当我使用 NumPy 获得相同的种子时,我会得到不同顺序的随机数:
np.random.seed(1)
np.random.randint(1,3,10)
array([2, 2, 1, 1, 2, 2, 2, 2, 2, 1])
这两种方法有什么办法可以产生相同顺序的随机数吗?
【问题讨论】:
-
种子点它启动 given 随机数生成器,而不是为 any 生成器提供可预测的结果;)简而言之,恐怕你不能
-
你需要找出matlab使用的生成器,然后在python/numpy中找到一个等效的生成器。
-
或者您可以使用两种语言中的一种生成数组并将其导出到另一种。
-
如果你想要相同的随机数......那么你根本不想要一个随机数......你想要一些序列,你可以预定义