Advertisement
jukaukor

Monte_carlo_numpy_pi.py

Mar 25th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. # Heitetään pisteitä satunnaisesti neliölle
  2. # Osa pisteistä osuu neliön sisällä olevalle neljännesympyrälle
  3. # Lasketaan tuloksista Piin arvo
  4. # Juhani Kaukoranta 25.3.2019
  5. import numpy as np
  6. import time
  7.  
  8. def monte_carlo_pi(n):
  9. accum = 0
  10. # pisteiden x-koord neliöt ekarivillä, y-koord neliöt tokarivillä
  11. xy= np.random.random_sample((2,n))**2
  12. # x**2 + y**2 vektoriin xy
  13. # neliösummat vektoriin squaresums
  14. squaresums = xy[0] + xy[1]
  15. # accum sisältää ympyräneljännekseen osuvien pisteiden lukumäärän
  16. accum = np.sum(squaresums<1)
  17. return 4.0*accum/n
  18.  
  19. pisteita = int(input("Kuinka monta pistettä arvotaan "))
  20. time0 = time.perf_counter()
  21. print("Pii = ",monte_carlo_pi(pisteita))
  22. time1 = time.perf_counter()
  23. print("Aikaa kului ",time1-time0," sekuntia")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement