Python 二项分布概率的计算

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)) 编

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))
编辑-可爱的多佛利解决方案

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