fork download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cmath>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. srand(time(0));
  11.  
  12. int n=6000;
  13.  
  14. double *y =new double[n],*x = new double[n];
  15. double a,ymax,ymin,dy,lambda=0.5;
  16. int i,k;
  17. int h[30];
  18.  
  19. for (i=0; i<n; i++)
  20. {
  21. while(1)
  22. {
  23. a=((double)rand() / (double)RAND_MAX);
  24. if (a>0) break;
  25. }
  26. x[i]=a;
  27. y[i]=(-1.0/lambda)*log(x[i]);
  28. }
  29.  
  30. ymax=ymin=y[0];
  31.  
  32. for (i=1; i<n; i++)
  33. {
  34. if (y[i]>ymax) ymax=y[i];
  35. if (y[i]<ymin) ymin=y[i];
  36. }
  37.  
  38. dy=(ymax-ymin)/30;
  39.  
  40. for (i=0; i<30; i++) h[i]=0;
  41.  
  42. for (i=0; i<n; i++)
  43. {
  44. k=(int)((y[i]-ymin)/dy);
  45. h[k]++;
  46. }
  47.  
  48. for (i=0; i<30; i++)
  49. cout << ymin+i*dy << " " << h[i] << endl;
  50.  
  51. delete [] y;
  52. delete [] x;
  53. return 0;
  54. }
Success #stdin #stdout 0s 5044KB
stdin
Standard input is empty
stdout
0.000227934 1537
0.607619 1169
1.21501 883
1.8224 651
2.42979 481
3.03718 308
3.64458 254
4.25197 197
4.85936 146
5.46675 96
6.07414 85
6.68153 51
7.28892 40
7.89632 27
8.50371 15
9.1111 19
9.71849 14
10.3259 5
10.9333 7
11.5407 6
12.1481 2
12.7554 2
13.3628 2
13.9702 1
14.5776 1
15.185 0
15.7924 0
16.3998 0
17.0072 0
17.6146 1