andreibalu

Untitled

Apr 22nd, 2021
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3.  
  4. #include <time.h>
  5. #include <fstream>
  6. #include <time.h>
  7. #include <fstream>
  8.  
  9.  
  10.  
  11.  
  12. #define INTERVAL 500   //iteratii pt estimarea unui pi
  13. #define k 50   //numar incercari de estimare pi
  14.  
  15. int main()
  16. {
  17.     ofstream f("rezultate.txt");
  18.     int interval, i;
  19.     double rand_x, rand_y, origin_dist, pi;
  20.     int circle_points = 0, square_points = 0;
  21.     clock_t t1,t2;
  22.  
  23.     int j,x=0;
  24.     double time_taken[50];
  25.     srand(time(NULL));
  26.  
  27. for(j=0;j<k;j++){       //k teste
  28.     double timp=0;
  29.     t1 = clock();
  30.     for (i = 0; i < (INTERVAL * INTERVAL); i++) {
  31.         rand_x = double(rand() % (INTERVAL + 1)) / INTERVAL;
  32.         rand_y = double(rand() % (INTERVAL + 1)) / INTERVAL;
  33.  
  34.  
  35.         origin_dist = rand_x * rand_x + rand_y * rand_y;
  36.  
  37.         if (origin_dist <= 1)
  38.             circle_points++;
  39.  
  40.  
  41.         square_points++;
  42.  
  43.  
  44.         pi = double(4 * circle_points) / square_points;
  45.  
  46.         //timp=timp+time_taken;
  47.  
  48.     }
  49.     t1 = clock() - t1;
  50.  
  51.     time_taken[x]= ((double)t1)/CLOCKS_PER_SEC;
  52.  
  53.  
  54.  
  55.     f <<"Timpul total este "<<time_taken[x]<<" secunde "<<"pentru "<<(INTERVAL*INTERVAL)<<" iteratii";
  56.     f<<(f,"\n");
  57.  
  58.     f << "Final Estimation of Pi = " << pi;
  59.     f<<(f,"\n");
  60.     x++;
  61.  
  62.     f<<(f,"----------------\n");
  63. }
  64.     double suma=0;
  65.     for(int p=0;p<x;p++){
  66.         suma=suma+time_taken[p];
  67.     }
  68.     f<<"Timpul total necesar pt 50 de teste este "<<suma<<" secunde"<<endl<<"iar timpul mediu pt fiecare estimare de Pi (la "<<(INTERVAL*INTERVAL)<<" de iteratii) este " << ((double)suma)/k<<" secunde";
  69.  
  70.     return 0;
  71. }
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
Add Comment
Please, Sign In to add comment