C++ Bc. 24
- Narozeninový paradox
Narozeninový paradox říká, že pokud se v místnosti sejde 23 či více lidí, je pravděpodobnost, že alespoň dva mají narozeniny ve stejný den víc než 50% (0.5073). D.E.Knuth: The Art of Computer Programming, Vol. 3, Sorting and Searching, 2nd ed., Addison-Wesley, 1998, ISBN 0-201-89685-0, str. 513, 549.
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
pocet pokusu v kazde simulaci je 100000 pocet osob pravdepodobnost 2 0.0030 0.0030 0.0028 0.0025 0.0026 0.0028 0.0025 3 0.0083 0.0081 0.0081 0.0081 0.0082 0.0084 0.0082 4 0.0161 0.0167 0.0168 0.0167 0.0163 0.0155 0.0168 5 0.0269 0.0276 0.0270 0.0273 0.0277 0.0277 0.0273 10 0.1174 0.1177 0.1165 0.1165 0.1168 0.1184 0.1168 15 0.2532 0.2535 0.2497 0.2515 0.2521 0.2549 0.2530 20 0.4115 0.4119 0.4134 0.4110 0.4112 0.4098 0.4122 23 0.5083 0.5084 0.5079 0.5061 0.5047 0.5082 0.5080 30 0.7062 0.7050 0.7057 0.7069 0.7064 0.7050 0.7065 40 0.8891 0.8908 0.8911 0.8920 0.8912 0.8924 0.8892 50 0.9695 0.9706 0.9708 0.9694 0.9705 0.9711 0.9702