Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <math.h>
- #include <stdio.h>
- #include <time.h>
- #include <vector>
- static inline float Rand() {
- return static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
- }
- int main() {
- srand (time(NULL));
- unsigned long long a_w = 0, b_w = 0, c_w = 0, d_w = 0;
- std::vector<double> a_v, b_v, c_v, d_v;
- for (unsigned long long i = 0; i < 1000000; ++i) {
- double x = 1;
- double a = 100, b = 100 / 101.0, c = 0, d = 0;
- for (int j = 0; j < 100; ++j) {
- double p = 2 * Rand() * log(1.02) - log(1.02);
- x *= exp(p);
- x *= pow(1.08, 1./250.);
- b += 100.0 / (101.0 * x);
- if (j == 50) c += 100.0 / x;
- }
- //printf("%.4f\n", x);
- d += 100.0 / x;
- a *= x;
- b *= x;
- c *= x;
- d *= x;
- a_v.push_back(a);
- b_v.push_back(b);
- c_v.push_back(c);
- d_v.push_back(d);
- if (a > b && a > c && a > d) ++a_w;
- if (b > a && b > c && b > d) ++b_w;
- if (c > a && c > b && c > d) ++c_w;
- if (d > a && d > b && d > c) ++d_w;
- }
- printf("%llu\t%llu\t%llu\t%llu\n", a_w, b_w, c_w, d_w);
- double a_m = 0, b_m = 0, c_m = 0, d_m = 0;
- for (int i = 0; i < a_v.size(); ++i) {
- a_m += a_v[i];
- b_m += b_v[i];
- c_m += c_v[i];
- d_m += d_v[i];
- }
- a_m /= a_v.size();
- b_m /= a_v.size();
- c_m /= a_v.size();
- d_m /= a_v.size();
- double a_s = 0, b_s = 0, c_s = 0, d_s = 0;
- for (int i = 0; i < a_v.size(); ++i) {
- a_s += (a_v[i] - a_m) * (a_v[i] - a_m);
- b_s += (b_v[i] - b_m) * (b_v[i] - b_m);
- c_s += (c_v[i] - c_m) * (c_v[i] - c_m);
- d_s += (d_v[i] - d_m) * (d_v[i] - d_m);
- }
- a_s /= a_v.size();
- b_s /= a_v.size();
- c_s /= a_v.size();
- d_s /= a_v.size();
- printf("%.4f\t%.4f\t%.4f\t%.4f\n", a_m, b_m, c_m, d_m);
- printf("%.4f\t%.4f\t%.4f\t%.4f\n", a_s, b_s, c_s, d_s);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement