C++ Bc. 43 cpp: Porovnání verzí
m Založena nová stránka: <pre> // kruhova parcela ma polomer 1 se stredem v bode (1, 1) // koze je uvazana na provaze delky r=1 v bode (1, 0) // nahodne vygenerovany bod na zahrade // true/false -... |
mBez shrnutí editace |
||
Řádek 49: | Řádek 49: | ||
} | } | ||
</pre> | </pre> | ||
Příklad výstupu: | |||
1 39.21 39.21 | |||
2 39.06 39.13 | |||
3 39.07 39.11 | |||
4 38.86 39.05 | |||
5 39.04 39.05 | |||
6 38.95 39.03 | |||
7 38.96 39.02 | |||
8 39.10 39.03 | |||
9 39.29 39.06 | |||
10 39.04 39.06 | |||
[ [[C++ Bc. 43 | Zpět]] ] | [ [[C++ Bc. 43 | Zpět]] ] |
Aktuální verze z 27. 1. 2011, 13:54
// kruhova parcela ma polomer 1 se stredem v bode (1, 1) // koze je uvazana na provaze delky r=1 v bode (1, 0) // nahodne vygenerovany bod na zahrade // true/false - koza na nej dosahne/nedosahne bool bod() { const double r = 1; // pro r=1.1583... spase koza 50% plochy double x, y, dx, dy, dx2; do { x = 2.0*rand()/(RAND_MAX + 1.0); y = 2.0*rand()/(RAND_MAX + 1.0); dx = x - 1.0; dy = y - 1.0; dx2 = dx*dx; } while (dx2 + dy*dy > 1.0); // bod musi lezet na parcele return dx2 + y*y <= r*r; // koza dosahne na bod } int main() { using namespace std; srand(time(0)); const int M = 10; const int N = 100000; int total = 0; for (int m=1; m<=M; m++) { int priznive = 0; for (int n=1; n<=N; n++) { if (bod()) priznive++; } total += priznive; cout << setw(3) << m << setprecision(2) << fixed << setw(9) << 100.0*priznive/N << setprecision(2) << fixed << setw(9) << 100.0*total/m/N << endl; } }
Příklad výstupu:
1 39.21 39.21 2 39.06 39.13 3 39.07 39.11 4 38.86 39.05 5 39.04 39.05 6 38.95 39.03 7 38.96 39.02 8 39.10 39.03 9 39.29 39.06 10 39.04 39.06
[ Zpět ]