python 中的二项分布
Binomial distribution in python
所以,我有一个很简单的程序,如下:
from scipy.stats import binom
import matplotlib.pyplot as plt
import numpy as np
for x in range(10,20):
p = sum(np.random.binomial(30,0.5,100000)==x)/100000
print(p)
这个想法是,给定一次向左或向右走的概率相等的随机行走,向右走 10-20 步的概率是多少。看起来很简单,如果我将 x 设置为 15,它实际上会产生正确的答案。但是当我为这个特定范围设置它时,它给了我 ~5%,这是错误的。应该接近 100%。做什么?
"sum()" 不会给你一个循环生命周期的 运行 总和:它对括号内的项目求和。您只会得到最后一次拆分,即 x==19 的拆分。试试这个:
p = 0.0
for x in range(10,20):
p += sum(np.random.binomial(30,0.5,100000)==x)/100000
所以,我有一个很简单的程序,如下:
from scipy.stats import binom
import matplotlib.pyplot as plt
import numpy as np
for x in range(10,20):
p = sum(np.random.binomial(30,0.5,100000)==x)/100000
print(p)
这个想法是,给定一次向左或向右走的概率相等的随机行走,向右走 10-20 步的概率是多少。看起来很简单,如果我将 x 设置为 15,它实际上会产生正确的答案。但是当我为这个特定范围设置它时,它给了我 ~5%,这是错误的。应该接近 100%。做什么?
"sum()" 不会给你一个循环生命周期的 运行 总和:它对括号内的项目求和。您只会得到最后一次拆分,即 x==19 的拆分。试试这个:
p = 0.0
for x in range(10,20):
p += sum(np.random.binomial(30,0.5,100000)==x)/100000