Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <math.h>
  3. #include <stdio.h>
  4. #include <time.h>
  5. #include <vector>
  6.  
  7. static inline float Rand() {
  8. return static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
  9. }
  10.  
  11. int main() {
  12. srand (time(NULL));
  13. unsigned long long a_w = 0, b_w = 0, c_w = 0, d_w = 0;
  14. std::vector<double> a_v, b_v, c_v, d_v;
  15. for (unsigned long long i = 0; i < 1000000; ++i) {
  16. double x = 1;
  17. double a = 100, b = 100 / 101.0, c = 0, d = 0;
  18. for (int j = 0; j < 100; ++j) {
  19. double p = 2 * Rand() * log(1.02) - log(1.02);
  20. x *= exp(p);
  21. x *= pow(1.08, 1./250.);
  22. b += 100.0 / (101.0 * x);
  23. if (j == 50) c += 100.0 / x;
  24. }
  25. //printf("%.4f\n", x);
  26. d += 100.0 / x;
  27.  
  28. a *= x;
  29. b *= x;
  30. c *= x;
  31. d *= x;
  32. a_v.push_back(a);
  33. b_v.push_back(b);
  34. c_v.push_back(c);
  35. d_v.push_back(d);
  36. if (a > b && a > c && a > d) ++a_w;
  37. if (b > a && b > c && b > d) ++b_w;
  38. if (c > a && c > b && c > d) ++c_w;
  39. if (d > a && d > b && d > c) ++d_w;
  40. }
  41. printf("%llu\t%llu\t%llu\t%llu\n", a_w, b_w, c_w, d_w);
  42.  
  43. double a_m = 0, b_m = 0, c_m = 0, d_m = 0;
  44. for (int i = 0; i < a_v.size(); ++i) {
  45. a_m += a_v[i];
  46. b_m += b_v[i];
  47. c_m += c_v[i];
  48. d_m += d_v[i];
  49. }
  50. a_m /= a_v.size();
  51. b_m /= a_v.size();
  52. c_m /= a_v.size();
  53. d_m /= a_v.size();
  54. double a_s = 0, b_s = 0, c_s = 0, d_s = 0;
  55. for (int i = 0; i < a_v.size(); ++i) {
  56. a_s += (a_v[i] - a_m) * (a_v[i] - a_m);
  57. b_s += (b_v[i] - b_m) * (b_v[i] - b_m);
  58. c_s += (c_v[i] - c_m) * (c_v[i] - c_m);
  59. d_s += (d_v[i] - d_m) * (d_v[i] - d_m);
  60. }
  61. a_s /= a_v.size();
  62. b_s /= a_v.size();
  63. c_s /= a_v.size();
  64. d_s /= a_v.size();
  65. printf("%.4f\t%.4f\t%.4f\t%.4f\n", a_m, b_m, c_m, d_m);
  66. printf("%.4f\t%.4f\t%.4f\t%.4f\n", a_s, b_s, c_s, d_s);
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement