jukaukor

Pi_Bailey_Borwein_Plouffe.py

Jun 25th, 2018 (edited)
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. # Ohjelma laskee Piin likiarvon halutulla tarkkuudella
  2. # Perustuu Bailey-Borwein-Plouffe kaavaan vuodelta 1995
  3. # Kaava antaa k:nnen numeron 16-järjestelmän avulla ilman että tarvitsee laskea
  4. # aikaisempia numeroita
  5. # Tämä ohjelma laskee samaan kaavaan nojautuen halutun määrän Pi:n desimaaleja.
  6. # Juhani Kaukoranta 14.3.2022
  7.  
  8. from decimal import *
  9. import time
  10.  
  11. def pii(precision):
  12. getcontext().prec=precision
  13. s = Decimal(0)
  14. for k in range(0,precision):
  15. s = s + 1/Decimal(16)**k*(
  16. Decimal(4)/(8*k+1) -
  17. Decimal(2)/(8*k+4) -
  18. Decimal(1)/(8*k+5) -
  19. Decimal(1)/(8*k+6))
  20. return s
  21.  
  22. tarkkuus = int(input("Kuinka monen numeron tarkkuudella haluat Piin likiarvon? "))
  23. time0 = time.perf_counter()
  24. piinlikiarvo = pii(tarkkuus)
  25. time1 = time.perf_counter()
  26. print ("Aikaa kului ",time1-time0," sekuntia")
  27. print ("Piin likiarvo ",tarkkuus," tarkkuudella = ",piinlikiarvo)
Add Comment
Please, Sign In to add comment