Advertisement
jukaukor

ChudnovskyPI.py

Aug 14th, 2023 (edited)
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. # Chudnovsky algorithm for Pi
  2. # Juhani Kaukoranta 14.8.2023
  3. # https://en.wikipedia.org/wiki/Chudnovsky_algorithm
  4. from decimal import Decimal as Dec,getcontext as gc
  5. import time
  6. def PI(digits): # digits=piin desimaalien haluttu määrä
  7. maxK = int(digits*0.071+2) # max numbers of iterations
  8. gc().prec = digits+8
  9. K, M, L, X, S = 6, 1, 13591409, 1, 13591409
  10. for k in range(1, maxK):
  11. M = (K**3 - 16*K) * M // k**3
  12. L += 545140134
  13. X *= -262537412640768000
  14. S += Dec(M * L) / X
  15. K += 12
  16. pi = 426880 * Dec(10005).sqrt() / S
  17. pi = Dec(str(pi)[:digits+2]) # drop few digits of precision for accuracy
  18. print(pi)
  19.  
  20.  
  21.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement