首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从标准柯西分布创建相同的rnd数?

如何从标准柯西分布创建相同的rnd数?
EN

Stack Overflow用户
提问于 2019-10-17 21:19:31
回答 1查看 199关注 0票数 0

对于模拟,我需要一个柯西分布随机数数组。这可以通过函数轻松地完成

代码语言:javascript
复制
random.standard_cauchy(N) 

现在我想生成完全相同的随机数序列。

我试过了

代码语言:javascript
复制
seed(42)
print(random.standard_cauchy(10), random.standard_cauchy(10))

,但我不工作。我得到了不同的序列。

是否有可能从标准柯西分布生成相同的随机数序列?

EN

回答 1

Stack Overflow用户

发布于 2019-10-17 21:23:55

这是因为你需要“重置”序列。

你所做的就像print(random.standard_cauchy(20))一样

代码语言:javascript
复制
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))

要打印相同数字的两个系列,您需要再次设置相同的种子值。当种子值固定时,序列“重新启动”。

代码语言:javascript
复制
from numpy import random :

random.seed(42)
print(random.standard_cauchy(10))
random.seed(42)
print(random.standard_cauchy(20))

您可以在for中执行此操作:

代码语言:javascript
复制
from numpy import random

for i in range (2):
    random.seed(42)
    print(random.standard_cauchy(10))

输出:

代码语言:javascript
复制
[-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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58433664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档