C++ Bc. 26: Porovnání verzí
m +kategorie programovani |
mBez shrnutí editace |
||
Řádek 1: | Řádek 1: | ||
;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. | |||
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