C++ Bc. 25: Porovnání verzí

Z GeoWikiCZ
Bez shrnutí editace
mBez shrnutí editace
 
(Není zobrazeno 18 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
'''[http://en.wikipedia.org/wiki/Buffon Buffonův problém házení jehlou]'''
;[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.</math> Pro jednoduchost budeme předpokládat, že  
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> takže jehla protne nejvýše jednu přímku. Zajímá nás, jaká je pravděpodobnost, že jehla přímku skutečně protne.  
<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),</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.
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/2 \sin \varphi</math>
Jehla protne jednu z rovnoběžek tehdy, když <math>0 \le x \le {1\over2}\ell \sin \varphi</math>
nebo <math> d - \ell/2 \sin \varphi \le x \le d.</math>
nebo <math> d - {1\over2}\ell \sin \varphi \le x \le d</math>.
[''Alfréd Rényi: Terorie pravděpodobnosti, Akademia, Praha 1972'']


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 22: Řádek 24:


kde funkce <tt>time()</tt> je definována v knihovně <tt>&lt;ctime&gt;</tt>.
kde funkce <tt>time()</tt> je definována v knihovně <tt>&lt;ctime&gt;</tt>.


'''Příklad simulace'''
'''Příklad simulace'''


d = 1  l = 0.7
   1 : 0.4456  ~  0.4479  0.4479
   1 : 0.4456  ~  0.4479  0.4479
   2 : 0.4456  ~  0.4464  0.4471
   2 : 0.4456  ~  0.4464  0.4471
Řádek 37: Řádek 40:
  10 : 0.4456  ~  0.4441  0.4461
  10 : 0.4456  ~  0.4441  0.4461


[ [[C plus plus Bc.|Zpět]] | [[C plus plus Bc. 25 cpp | 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

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ší ]