jukaukor

Pi_Bailey_Borwein_Plouffe.jl

Sep 12th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. # Pi_Bailey_Borwein_Plouffe.jl
  2. # Juliaohjelma laskee Piin likiarvon halutulla tarkkuudella
  3. # Perustuu Bailey-Borwein-Plouffe kaavaan vuodelta 1995
  4. # Juhani Kaukoranta 12.9.2019
  5.  
  6. function Pii(tarkkuus,bitprecision)
  7. setprecision(BigFloat,bitprecision+40)
  8.  
  9. s = BigFloat(0.0)
  10. for k = 0:tarkkuus+40
  11. s = s + BigFloat(1.0)/big(16)^k*(BigFloat(4.0)/(8*k+1)-BigFloat(2.0)/(8*k+4)-BigFloat(1.0)/(8*k+5)-BigFloat(1.0)/(8*k+6))
  12. end
  13. return s
  14. end
  15.  
  16. println("Kuinka monen numeron tarkkuudella haluat Piin likiarvon? ")
  17. tarkkuustxt = readline()
  18. tarkkuus = parse(Int,tarkkuustxt)
  19. bitprecision = round(Int,log2(BigFloat(10.0)^tarkkuus))
  20. println("tarkkuus = ",tarkkuus)
  21. println("bitprecision =", bitprecision)
  22. piinlikiarvo = Pii(tarkkuus,bitprecision)
  23. # asetetaan tulostustarkkuus halutuksi
  24. setprecision(BigFloat,bitprecision)
  25. println("Piin likiarvo ",tarkkuus," tarkkuudella = ",BigFloat(piinlikiarvo))
Advertisement
Add Comment
Please, Sign In to add comment