def normal_pdf(x, m, v):
    return 1.0 / sqrt(2 * pi * v) * exp(-(x - m) ** 2 / (2 * v))

def binomial_pdf(p, n, k):
    if n < 100:
        return comb(n, k) * p ** k * p ** (n - k)
return normal_pdf(k, n * p, n * p * (1.0 - p))
Биномиальный тест в Python для очень больших чисел