Я новичок в 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 по-прежнему точны. Я попытался изменить способ вычисления алгоритма, и это тоже не сработало. Итак, мой вопрос: можно ли что-то сделать с этим кодом, чтобы сделать его более точным, или мне придется использовать другой алгоритм? Я был бы признателен за помощь в этом, потому что я не знаю, как это сделать. работать с таким количеством цифр в питоне. Я хотел бы иметь возможность контролировать количество (правильных) цифр, определенных и отображаемых программой, будь то 10, 100, 1000 и т. Д.