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

Z GeoWikiCZ
Bez shrnutí editace
m (odkaz na wikipedii)
 
(Není zobrazeno 11 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
'''Narozeninový paradox'''
;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.''
[http://cs.wikipedia.org/wiki/Narozeninov%C3%BD_probl%C3%A9m 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)<ref name="knuth">''[http://en.wikipedia.org/wiki/Knuth 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''</ref>.


Napište simulační program, který ověří výše uvedené tvrzení.


Pro generování rovnoměrného rozdělení čísel z intervalu <tt><0,1)</tt> použijte výraz


[ [[C plus plus Bc.|Zpět]] | [[C plus plus Bc. 24 cpp | C++ ]] ]
rand()/(RAND_MAX + 1.0)
 
kde funkce <tt>rand()</tt> a konstanta <tt>RAND_MAX</tt> jsou definovány v knihovně <tt>&lt;cstdlib&gt;</tt>. 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 <tt>time()</tt> je definována v knihovně <tt>&lt;ctime&gt;</tt>.
 
'''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 
 
<references/>
 
[ [[C++ Bc.|Zpět]] | [[C++ Bc. 24 cpp | C++ ]] | [[C++ Bc. 25|Další]] ]
 
[[Kategorie:Programování]]

Aktuální verze z 11. 11. 2010, 20:53

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)<ref name="knuth">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</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

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  

<references/>

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