Итак, я решил создать калькулятор гипергеометрического распределения (вероятности и статистику).Проблема в том, что выход всегда будет между 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))
I 'Я пытался импортировать десятичный модуль, но я не совсем уверен, правильно ли я его использую или для чего он нужен.Любая помощь будет потрясающей!
Редактировать: Например, когда я устанавливаю N = 15, n = 6, r = 5 и k = 3, округляет ответ до 0. Я хотел бы вместо этогораспечатать правильный ответ: .2397802398.Спасибо!