Advertisement
Tvor0zhok

ParProg4.7

Feb 26th, 2023
601
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. #define _USE_MATH_DEFINES
  2. #include <Windows.h>
  3. #include <iostream>
  4. #include <string>
  5. #include <omp.h>
  6. using namespace std;
  7.  
  8. double f(double x)
  9. {
  10.     return 1 / (1 + x * x);
  11. }
  12.  
  13. int main() {
  14.     setlocale(LC_ALL, "Russian");
  15.    
  16.     int N = 1e8;
  17.  
  18.     double a = 0, b = 1e6, h = (b - a) / 2 / N;
  19.  
  20.     double sum1 = 0;
  21.  
  22. #pragma omp parallel for reduction(+:sum1)
  23.     for (int k = 1; k < 2 * N; k += 2)
  24.         sum1 += f(a + k * h);
  25.  
  26.     double sum2 = 0;
  27.  
  28. #pragma omp parallel for reduction(+:sum2)
  29.     for (int k = 2; k < 2 * N; k += 2)
  30.         sum2 += f(a + k * h);
  31.  
  32.     double res = h / 3 * (f(a) + f(b) + (4 * sum1) + (2 * sum2));
  33.  
  34.     cout << "Реальный ответ: " << M_PI / 2 << "\n";
  35.     cout << "Ответ, полученный алгоритмом: " << res;
  36.  
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement