Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. int main()
  5. {
  6. uint64_t mit = 10000000;
  7. uint64_t c[] = { 0, 0 };
  8.  
  9. uint64_t nr = 302238514;
  10.  
  11. for (uint64_t i = 0; i < mit; i++)
  12. {
  13. nr = (nr * 16807 + 231) % 2147483647;
  14. uint64_t a = nr++;
  15. nr = (nr * 48271 + 423) % 2147483647;
  16. uint64_t b = nr++;
  17.  
  18. uint64_t k = a, l = b;
  19. while (k != 0)
  20. {
  21. k ^= l;
  22. l ^= k;
  23. k ^= l;
  24. k %= l;
  25. }
  26.  
  27. l--;
  28. l /= (l > 0 ? l : 1);
  29. c[l]++;
  30. }
  31.  
  32. double r = 6.0 / ((double)c[0] / (double)mit);
  33.  
  34. double pi = r;
  35. for (uint64_t i = 0; i < sqrt(mit); i++)
  36. pi = (pi + r / pi) / 2;
  37.  
  38. printf("%f\n", pi);
  39.  
  40. getchar();
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement