C++ Bc. 26

Z GeoWikiCZ
Přejít na: navigace, hledání
Mariáš

Prof. Böhm při zkouškách z vyrovnávacího počtu s oblibou zkoušel základy teorie pravděpodobnosti na příkladech z licitovaného mariáše. Například, jaká je pravděpodobnost, že po rozdání zamíchaných karet jsou v talonu pouze esa anebo desítky (třem hráčum je rozdáno po deseti kartách, dvě jsou odloženy do talonu).

Počet všech možných rozdání je 32! \over {2!30!}, počet možností jak vybrat dvě karty z osmi je 8 \choose 2 a výsledná pravděpodobnost je 0.05645.

Napište simulační program, který odhadne požadovanou pravděpodobnost.

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

Poznámka: základ programu tvoří zamíchání karet před každým rozdáním, tj. výpočet náhodné permutace.

Příklad simulace

 1 : 0.05645  ~  0.0551   0.0551
 2 : 0.05645  ~  0.0550   0.0550
 3 : 0.05645  ~  0.0560   0.0554
 4 : 0.05645  ~  0.0569   0.0557
 5 : 0.05645  ~  0.0562   0.0558
 6 : 0.05645  ~  0.0570   0.0560
 7 : 0.05645  ~  0.0577   0.0563
 8 : 0.05645  ~  0.0574   0.0564
 9 : 0.05645  ~  0.0564   0.0564
10 : 0.05645  ~  0.0569   0.0565

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