#include #include int myRand(void) { return rand() * (RAND_MAX + 1) + rand(); } int randDansIntervalle1(int bi, int bf) { return bi + rand() % (bf - bi + 1); } int randDansIntervalle2(int bi, int bf) { return bi + myRand() % (bf - bi + 1); } int randDansIntervalle(int bi, int bf, int (*fonctionRand)(void)) { return bi + fonctionRand() % (bf - bi + 1); } double rand01(void) { return ((double) myRand() / (RAND_MAX + 1)) / (RAND_MAX + 1); } void tester1(int n) { int n5 = 0; int n6 = 0; int n7 = 0; int n8 = 0; int n9 = 0; int n10 = 0; for (int i = 0; i < n; i++) { int v = randDansIntervalle1(5, 10); switch (v) { case 5: { n5++; } break; case 6: { n6++; } break; case 7: { n7++; } break; case 8: { n8++; } break; case 9: { n9++; } break; case 10: { n10++; } break; } } printf("%7d %7d %7d %7d %7d %7d : %7d\n", n5, n6, n7, n8, n9, n10, n5 + n6 + n7 + n8 + n9 + n10); printf("%7.3lf %7.3lf %7.3lf %7.3lf %7.3lf %7.3lf\n", (double) n5 / n * 100.0, (double) n6 / n * 100.0, (double) n7 / n * 100.0, (double) n8 / n * 100.0, (double) n9 / n * 100.0, (double) n10 / n * 100.0); } void tester2(int n) { int n0 = 0; int n1 = 0; int n2 = 0; for (int i = 0; i < n; i++) { int v = randDansIntervalle1(0, 29999); if ((v >= 0) && (v <= 9999)) { n0++; } if ((v >= 10000) && (v <= 19999)) { n1++; } if ((v >= 20000) && (v <= 29999)) { n2++; } } printf("%7d %7d %7d %23s : %7d\n", n0, n1, n2, "", n0 + n1 + n2); printf("%7.3lf %7.3lf %7.3lf\n", (double) n0 / n * 100.0, (double) n1 / n * 100.0, (double) n2 / n * 100.0); } void tester3(int n) { int n0 = 0; int n1 = 0; int n2 = 0; for (int i = 0; i < n; i++) { int v = randDansIntervalle2(0, 29999); if ((v >= 0) && (v <= 9999)) { n0++; } if ((v >= 10000) && (v <= 19999)) { n1++; } if ((v >= 20000) && (v <= 29999)) { n2++; } } printf("%7d %7d %7d %23s : %7d\n", n0, n1, n2, "", n0 + n1 + n2); printf("%7.3lf %7.3lf %7.3lf\n", (double) n0 / n * 100.0, (double) n1 / n * 100.0, (double) n2 / n * 100.0); } void tester4(int n) { int n0 = 0; int n1 = 0; int n2 = 0; int n3 = 0; for (int i = 0; i < n; i++) { double v = rand01(); if ((v >= 0) && (v < 0.25)) { n0++; } if ((v >= 0.25) && (v < 0.5)) { n1++; } if ((v >= 0.5) && (v < 0.75)) { n2++; } if ((v >= 0.75) && (v < 1.0)) { n3++; } } printf("%7d %7d %7d %7d %15s : %7d\n", n0, n1, n2, n3, "", n0 + n1 + n2 + n3); printf("%7.3lf %7.3lf %7.3lf %7.3lf\n", (double) n0 / n * 100.0, (double) n1 / n * 100.0, (double) n2 / n * 100.0, (double) n3 / n * 100.0); } int main(void) { srand(7); tester1(6000000); printf("\n"); tester2(3000000); printf("\n"); tester3(3000000); printf("\n"); tester4(4000000); return 0; }