所以我决定制作一个超几何分布计算器(概率和统计数据)。问题是输出总是在0和1之间。所以根据输出值的不同,Python会舍入到0或1。
这是我的代码
from combinatorics import combination
from combinatorics import permutation
from factorial import factorial
from decimal import Decimal
#Hypergeometric and Binomial Distributions!
def hypergeometric(N, n, r, k):
hyper = (combination(r, k) * combination(N - r, n - k))/(combination(N, n))
return hyper
pop = int(raw_input("What is the size of the population? "))
draws = int(raw_input("How many draws were there? "))
spop = int(raw_input("What is the smaller population? "))
success = int(raw_input("How many successes were there? "))
print Decimal(hypergeometric(pop, draws, spop, success))我已经尝试导入十进制模块,但我不确定是否正确使用了它,或者如果那是甚至它在那里。任何帮助都是极好的!
编辑:例如,当我设置N = 15,n = 6,r = 5和k = 3时,它将答案舍入为0.我希望它打印正确的答案:.2397802398。谢谢!