gpt4 book ai didi

python - 使用 For 循环重写 numpy.random.binomial

转载 作者:太空宇宙 更新时间:2023-11-04 05:37:34 24 4
gpt4 key购买 nike

目前我有以下代码

def approx_binomial(n, p, size=None):
gaussian = np.random.normal(n*p, n*p*(1-p), size=size)
# Add the continuity correction to sample at the midpoint of each integral bin.
gaussian += 0.5
if size is not None:
binomial = gaussian.astype(np.int64)
else:
# scalar
binomial = int(gaussian)
return binomial

但是,它不是很准确,因为它使用了随机函数。有没有其他方法可以使用 for 循环重写函数?

我的另一个问题是如何显示概率质量函数与成功次数的关系图?

def approx_binomial(n, p, size=None):
gaussian = np.random.normal(n*p, n*p*(1-p), size=size)
# Add the continuity correction to sample at the midpoint of each integral bin.
gaussian += 0.5
if size is not None:
binomial = gaussian.astype(np.int64)
else:
# scalar
binomial = int(gaussian)
return binomial
plt.plot(n,p)
plt.show()

谢谢!

最佳答案

使用 for 循环从二项分布中获取随机样本的明显方法是:

import random

def binomial_random_sample(n, p):
ret = 0
for j in range(n):
if random.random() < p:
ret += 1
return ret

或者如果您更喜欢更简洁的方法:

def binomial_random_sample(n, p):
return sum(random.random() < p for j in range(n))

关于python - 使用 For 循环重写 numpy.random.binomial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35146858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com