Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Chudnovsky algorithm for Pi
- # Juhani Kaukoranta 14.8.2023
- # https://en.wikipedia.org/wiki/Chudnovsky_algorithm
- from decimal import Decimal as Dec,getcontext as gc
- import time
- def PI(digits): # digits=piin desimaalien haluttu määrä
- maxK = int(digits*0.071+2) # max numbers of iterations
- gc().prec = digits+8
- K, M, L, X, S = 6, 1, 13591409, 1, 13591409
- for k in range(1, maxK):
- M = (K**3 - 16*K) * M // k**3
- L += 545140134
- X *= -262537412640768000
- S += Dec(M * L) / X
- K += 12
- pi = 426880 * Dec(10005).sqrt() / S
- pi = Dec(str(pi)[:digits+2]) # drop few digits of precision for accuracy
- print(pi)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement