Python пи расчет?

Я новичок в питоне и хочу вычислить пи. Я попытался использовать алгоритм Чудновского, потому что я слышал, что он быстрее, чем другие алгоритмы.

Это мой код:

from math import factorial
from decimal import Decimal, getcontext

getcontext().prec=100

def calc(n):
    t= Decimal(0)
    pi = Decimal(0)
    deno= Decimal(0)
    k = 0
    for k in range(n):
        t = ((-1)**k)*(factorial(6*k))*(13591409+545140134*k)
        deno = factorial(3*k)*(factorial(k)**3)*(640320**(3*k))
        pi += Decimal(t)/Decimal(deno)                                   
    pi = pi * Decimal(12)/Decimal(640320**(1.5))
    pi = 1/pi
    return pi

print calc(25)

По какой-то причине этот код возвращает значение числа Пи до 15 десятичных знаков по сравнению с допустимым значением. Я попытался решить эту проблему, увеличив значение точности; это увеличивает количество цифр, но только первые 15 все еще точны. Я попытался изменить способ вычисления алгоритма, но он тоже не сработал. Итак, мой вопрос,Есть ли что-то, что можно сделать с этим кодом, чтобы сделать его намного более точным, или мне придется использовать другой алгоритм? Я был бы признателен за помощь в этом, потому что я не знаю, как работать с таким количеством цифр в Python. Я хотел бы иметь возможность контролировать количество (правильных) цифр, определенных и отображаемых программой - 10, 100, 1000 и т. Д.

Ответы на вопрос(2)

Ваш ответ на вопрос