Advertisement
jukaukor

monte_carlo_numpy_njit_parallel_pi.py

Mar 26th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 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 26.3.2019
  5. import numpy as np
  6. from numba import njit
  7. import time
  8. @njit(parallel = True)
  9. def monte_carlo_pi(n):
  10. # neljännesympyrän sisällä pisteiden x- ja y-koordinaattien neliosumma < 1
  11. # pisteiden x- ja y-koordinaattien neliöiden summa < 1, tapausten lukumäärä
  12. accum = np.sum(np.random.random_sample(n)**2 + np.random.random_sample(n)**2 < 1)
  13. return 4.0*accum/n
  14.  
  15. pisteita = int(input("Kuinka monta pistettä arvotaan "))
  16. time0 = time.perf_counter()
  17. print("Pii = ",monte_carlo_pi(pisteita))
  18. time1 = time.perf_counter()
  19. print("Aikaa kului ",time1-time0," sekuntia")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement