C++ Bc. 25

Z GeoWikiCZ
Přejít na: navigace, hledání
Buffonův problém házení jehlou

Na rovnoběžné přímky v rovině ležící od sebe ve stejných vzdálenostech d házíme jehlu délky \ell. Pro jednoduchost budeme předpokládat, že \ell < d, 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 (x, \varphi), kde x je vzdálenost středu jehly od levé rovnoběžky a \phi je úhel, který jehla svírá s rovnoběžkami.

Jehla protne jednu z rovnoběžek tehdy, když 0 \le x \le {1\over2}\ell \sin \varphi nebo  d - {1\over2}\ell \sin \varphi \le x \le d.

Teoretická hodnota pravděpodobnosti, že jehla protne jednu z rovnoběžek je {2\ell\over\pi d}.. Při dostatečně velkém počtu pokusů bychom mohli takto odhadnout přibližnou hodnotu čísla \pi[1].

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
  1. Alfréd Rényi: Teorie pravděpodobnosti, Akademia, Praha 1972

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