C++ Bc. 25: Porovnání verzí
mBez shrnutí editace |
mBez shrnutí editace |
||
Řádek 11: | Řádek 11: | ||
Teoretická hodnota pravděpodobnosti, že jehla protne jednu z rovnoběžek je | Teoretická hodnota pravděpodobnosti, že jehla protne jednu z rovnoběžek je | ||
<math>{2\ell\over\pi d}.</math>. Při dostatečně velkém počtu pokusů bychom mohli takto odhadnout | <math>{2\ell\over\pi d}.</math>. Při dostatečně velkém počtu pokusů bychom mohli takto odhadnout | ||
přibližnou hodnotu čísla <math>\pi</math> | přibližnou hodnotu čísla <math>\pi</math><ref name="renyi">[http://en.wikipedia.org/wiki/Alfr%C3%A9d_R%C3%A9nyi ''Alfréd Rényi:] Teorie pravděpodobnosti, Akademia, Praha 1972</ref>. | ||
Napište simulační program, který ověří výše uvedené tvrzení. | Napište simulační program, který ověří výše uvedené tvrzení. | ||
Řádek 40: | Řádek 39: | ||
9 : 0.4456 ~ 0.4466 0.4463 | 9 : 0.4456 ~ 0.4466 0.4463 | ||
10 : 0.4456 ~ 0.4441 0.4461 | 10 : 0.4456 ~ 0.4441 0.4461 | ||
<references/> | |||
[ [[C++ Bc.|Zpět]] | [[C++ Bc. 25 cpp | C++ ]] | [[C++ Bc. 26|Další]] ] | [ [[C++ Bc.|Zpět]] | [[C++ Bc. 25 cpp | C++ ]] | [[C++ Bc. 26|Další]] ] | ||
[[Kategorie:Programování]] | [[Kategorie:Programování]] |
Aktuální verze z 10. 10. 2006, 21:54
Na rovnoběžné přímky v rovině ležící od sebe ve stejných vzdálenostech házíme jehlu délky . Pro jednoduchost budeme předpokládat, že , takže jehla protne nejvýše jednu přímku. Zajímá nás, jaká je pravděpodobnost, že jehla přímku skutečně protne.
Polohu bodu středu jehly můžeme charakterizovat bodem , kde je vzdálenost středu jehly od levé rovnoběžky a je úhel, který jehla svírá s rovnoběžkami.
Jehla protne jednu z rovnoběžek tehdy, když nebo .
Teoretická hodnota pravděpodobnosti, že jehla protne jednu z rovnoběžek je . Při dostatečně velkém počtu pokusů bychom mohli takto odhadnout přibližnou hodnotu čísla <ref name="renyi">Alfréd Rényi: Teorie pravděpodobnosti, Akademia, Praha 1972</ref>.
Napište simulační program, který ověří výše uvedené tvrzení.
Pro generování rovnoměrného rozdělení čísel z intervalu <0,1) použijte výraz
rand()/(RAND_MAX + 1.0)
kde funkce rand() a konstanta RAND_MAX jsou definovány v knihovně <cstdlib>. Aby program poskytoval při každém volání jinou simulaci, inicializujte generátor pseudonáhodných čísel voláním
srand(time(0));
kde funkce time() je definována v knihovně <ctime>.
Příklad simulace
d = 1 l = 0.7 1 : 0.4456 ~ 0.4479 0.4479 2 : 0.4456 ~ 0.4464 0.4471 3 : 0.4456 ~ 0.4456 0.4466 4 : 0.4456 ~ 0.4450 0.4462 5 : 0.4456 ~ 0.4448 0.4459 6 : 0.4456 ~ 0.4481 0.4463 7 : 0.4456 ~ 0.4458 0.4462 8 : 0.4456 ~ 0.4465 0.4463 9 : 0.4456 ~ 0.4466 0.4463 10 : 0.4456 ~ 0.4441 0.4461
<references/>