Python 二项分布概率的计算
100个问题,每个问题有4个可能的答案。如果随机选择每个问题的答案,通过考试的概率是多少(获得40%或更多) x=?Python 二项分布概率的计算,python,python-3.x,scipy,statistics,Python,Python 3.x,Scipy,Statistics,100个问题,每个问题有4个可能的答案。如果随机选择每个问题的答案,通过考试的概率是多少(获得40%或更多) x=? n=100 p=0.25 计算40%或更少与输入40作为x的值一样简单,但如何将其转换为40%或更多?我试过-40,60,-60,但显然那是错的 代码 import scipy.stats as stats cum_binomalpha = stats.binom.pmf(40, n=100, p=0.25) print(round(cum_binomalpha, 6)) 编
n=100
p=0.25
计算40%或更少与输入40作为x的值一样简单,但如何将其转换为40%或更多?我试过-40,60,-60,但显然那是错的 代码
import scipy.stats as stats
cum_binomalpha = stats.binom.pmf(40, n=100, p=0.25)
print(round(cum_binomalpha, 6))
编辑-可爱的多佛利解决方案
import scipy.stats as stats
cumm_binomalpha = stats.binom.cdf(39, n=100, p=0.25)
print (round(1-cumm_binomalpha, 6))
您可以使用以下方法获得准确答案:
从sympy导入
从sympy.stats导入二项式,P
b=二项式('b',100,S(1)/4)
打印(P(b>=40.evalf(),P(b>=40))
结果:
0.000686592207962991
68956946241719424989885392307281546441260036992065207027/100433627766186892221372630771322662657637687111424552206336
使用scipy,您可以尝试以下操作:
将scipy.stats导入为stats
将numpy作为np导入
打印(stats.binom.pmf(np.arange(40101),n=100,p=0.25.sum())
打印(1-stats.binom.cdf(39,n=100,p=0.25))
P(X>k)=1-P(X