为了进行模拟,我需要一个柯西分布的随机数数组。可以通过功能轻松完成
random.standard_cauchy(N)
现在我想生成完全相同的随机数序列。
我尝试过
seed(42)
print(random.standard_cauchy(10), random.standard_cauchy(10))
,但我无法正常工作。我得到的序列不同。
是否可以从标准柯西分布中生成相同的随机数序列?
这是因为您需要“重置”序列。
您所做的就像print(random.standard_cauchy(20))
from numpy import random
random.seed(42)
print(random.standard_cauchy(10), random.standard_cauchy(10))
random.seed(42)
print(random.standard_cauchy(20))
编辑
由于print(random.standard_cauchy(10), random.standard_cauchy(10))
您拨打一次random.standard_cauchy(10)
并获得前十个号码,然后您拨打第二次random.standard_cauchy(10)
,则获得后十个号码。
所以就像print(random.standard_cauchy(20))
要打印2个相同编号的序列,您需要再次设置相同的种子值。当种子值固定时,序列“重新启动”。
from numpy import random :
random.seed(42)
print(random.standard_cauchy(10))
random.seed(42)
print(random.standard_cauchy(20))
您可以在for中执行此操作:
from numpy import random
for i in range (2):
random.seed(42)
print(random.standard_cauchy(10))
输出:
[-3.59249748 0.42526319 1.00007012 2.05778128 -0.8652948 0.99503562
-0.12646463 3.06767933 -3.22303808 0.64293825]
[-3.59249748 0.42526319 1.00007012 2.05778128 -0.8652948 0.99503562
-0.12646463 3.06767933 -3.22303808 0.64293825]
听起来合乎逻辑。
但是看起来我仍然不知道如何重设序列。我尝试过
seed(42)
print(random.standard_cauchy(10))
seed(42)
print(random.standard_cauchy(10))
seed(42)
print(random.standard_cauchy(20))
但是我又得到了不同的顺序。您能否举一个例子,说明如何两次创建以下序列
random.standard_cauchy(10)