对于模拟,我需要一个柯西分布随机数数组。这可以通过函数轻松地完成
random.standard_cauchy(N) 现在我想生成完全相同的随机数序列。
我试过了
seed(42)
print(random.standard_cauchy(10), random.standard_cauchy(10)),但我不工作。我得到了不同的序列。
是否有可能从标准柯西分布生成相同的随机数序列?
发布于 2019-10-17 21:23:55
这是因为你需要“重置”序列。
你所做的就像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))
要打印相同数字的两个系列,您需要再次设置相同的种子值。当种子值固定时,序列“重新启动”。
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]https://stackoverflow.com/questions/58433664
复制相似问题