fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <random>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8. const unsigned long long n = 100000000ULL; // liczba punktów
  9. unsigned long long n0 = 0; // punkty w kole
  10.  
  11. mt19937_64 gen(random_device{}());
  12. uniform_real_distribution<long double> dist(0.0L, 1.0L);
  13.  
  14. for (unsigned long long i = 0; i < n; ++i) {
  15. long double x = dist(gen);
  16. long double y = dist(gen);
  17.  
  18. if (x * x + y * y <= 1.0L)
  19. n0++;
  20. }
  21.  
  22. long double pi = 4.0L * n0 / n;
  23.  
  24. cout << fixed << setprecision(30);
  25. cout << "Liczba punktów n = " << n << endl;
  26. cout << "Liczba punktów w kole n0 = " << n0 << endl;
  27. cout << "π ≈ " << pi << endl;
  28.  
  29. return 0;
  30. }
Success #stdin #stdout 3.45s 5312KB
stdin
Standard input is empty
stdout
Liczba punktów n = 100000000
Liczba punktów w kole n0 = 78539768
π ≈ 3.141590719999999999989884202911