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

Z GeoWikiCZ
m (+kategorie programovani)
mBez shrnutí editace
 
Řádek 1: Řádek 1:
'''Mariáš'''
;Mariáš


[[Prof. Ing. dr. Josef Böhm, DrSc.| 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).
'''[[Prof. Ing. dr. Josef Böhm, DrSc.| 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 <math>32! \over {2!30!}</math>, počet možností jak vybrat dvě karty z osmi je <math>8 \choose 2</math> a  výsledná pravděpodobnost je 0.05645.


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


Napište simulační program, který odhadne požadovanou pravděpodobnost.  
Napište simulační program, který odhadne požadovanou pravděpodobnost.  
Řádek 19: Řádek 18:


'''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.
'''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'''
'''Příklad simulace'''

Aktuální verze z 10. 10. 2006, 22:04

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 , počet možností jak vybrat dvě karty z osmi je 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ší ]