C++ Bc. 25

Z GeoWikiCZ
Buffonův problém házení jehlou

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/>

[ Zpět | C++ | Další ]