C++ Bc. 25: Porovnání verzí
Bez shrnutí editace |
mBez shrnutí editace |
||
(Není zobrazeno 9 mezilehlých verzí od 2 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
;[http://en.wikipedia.org/wiki/Buffon%27s_needle Buffonův problém házení jehlou] | |||
Na rovnoběžné přímky v rovině ležící od sebe ve stejných vzdálenostech <math>d</math> házíme jehlu délky <math>\ell | Na rovnoběžné přímky v rovině ležící od sebe ve stejných vzdálenostech <math>d</math> házíme jehlu délky <math>\ell</math>. Pro jednoduchost budeme předpokládat, že | ||
<math>\ell < d | <math>\ell < d</math>, 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 <math>(x, \varphi) | Polohu bodu středu jehly můžeme charakterizovat bodem <math>(x, \varphi)</math>, kde <math>x</math> je vzdálenost středu jehly od levé rovnoběžky a <math>\phi</math> je úhel, který jehla svírá s rovnoběžkami. | ||
Jehla protne jednu z rovnoběžek tehdy, když <math>0 \le x \le \ell | Jehla protne jednu z rovnoběžek tehdy, když <math>0 \le x \le {1\over2}\ell \sin \varphi</math> | ||
nebo <math> d - \ell | nebo <math> d - {1\over2}\ell \sin \varphi \le x \le d</math>. | ||
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 | |||
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 26: | Řádek 24: | ||
kde funkce <tt>time()</tt> je definována v knihovně <tt><ctime></tt>. | kde funkce <tt>time()</tt> je definována v knihovně <tt><ctime></tt>. | ||
'''Příklad simulace''' | '''Příklad simulace''' | ||
Řádek 43: | Řádek 40: | ||
10 : 0.4456 ~ 0.4441 0.4461 | 10 : 0.4456 ~ 0.4441 0.4461 | ||
[ [[C | <references/> | ||
[ [[C++ Bc.|Zpět]] | [[C++ Bc. 25 cpp | C++ ]] | [[C++ Bc. 26|Další]] ] | |||
[[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/>