Születésnap-paradoxon

A születésnap-paradoxon az a jelenség, miszerint megdöbbentően nagy az elméleti valószínűsége annak, hogy viszonylag kevés, egy szobában tartózkodó személy közül lesz kettő, akiknek a születésnapja azonos hónap azonos sorszámú napjára esik. Pl. ha egy szobában 23-an vannak, akkor valamivel több mint 50% az elméletileg számított esélye annak, hogy legalább kettőjüknek ugyanarra a napra esik a születésnapja. Ha legalább 58 ember van a szobában, ugyanennek a valószínűsége több mint 99%. Ez nem abban az értelemben paradoxon, hogy logikai ellentmondásra jutunk, hanem abban, hogy ellentmond az intuíció által sugalltaknak, a legtöbb ember ugyanis 50%-nál lényegesen alacsonyabbra becsüli a fenti esemény valószínűségét. A probléma és első alapos vizsgálata valószínűsíthetően Harold Davenporttól ered.

„Elméletileg számítotton” azt értjük, hogy a számítás során feltételezzük, hogy egy ember azonos statisztikai eséllyel születik az év bármely hónapjának bármely napján, amely hipotézis egyébként valójában hamis. (Pl. az Egyesült Államokban a Harvard kutatójának adatai szerint hetvenes és kilencvenes évek közt eltelt időben szeptember 16-án született abszolút értelemben [nem átlagosan] a legtöbb csecsemő.) Ez azonban a számított eredmény józan észt meglepő voltát nem érintő körülmény (nem ezen rejtett feltétel miatt lesz az eredmény paradox).

A valószínűség közelítő kiszámítása 

A fenti esemény (és a hozzá hasonló paradoxonok) pontos valószínűségének kiszámítása klasszikus probléma, rendszeresen tanítják valószínűségszámítási kurzusok részeként az egyetemeken.

A paradoxon megértéséhez kulcsfontosságú, hogy észrevegyük: noha viszonylag kevés ember van a szobában, már így is nagyon sok párt alkotnak, melyeknél a születésnap-egyezést egyenként vizsgálni kell. 23 esetén 23 × 22 / 2 = 253 pár van, mindegyik pár egy lehetséges egyezés. Más szemszögből megközelítve: képzeljük el, hogy belépünk egy szobába, ahol már 22-en vannak, és azt nézzük, hogy közülük valakinek ugyanakkor van-e a születésnapja, mint nekünk. Ez természetesen sokkal kisebb mint 50%. A születésnap-paradoxon azonban azt vizsgálja, hogy bármelyik két embernek a 23-ból megegyezik-e a születésnapja.

A valószínűség közelítő kiszámításához elhanyagolunk pár részletet, így a szökőéveket, azt, hogy az emberek között lehetnek ikrek, valamint a különböző születési statisztikákat, ehelyett feltesszük, hogy ha valakinek nem ismerjük a születésnapját, akkor az a 365 napos év minden napján azonos valószínűséggel születhetett.

Az ötlet a következő: először számoljuk ki, hogy mi a valószínűsége annak, hogy n emberből mindenki más napon született:

mert ha (tetszőlegesen) sorba állítjuk az embereket, akkor a másodiknak nem lehet ugyanakkor a születésnapja, mint az elsőnek (364/365), a harmadiknak nem lehet ugyanakkor, mint az első kettőnek (363/365), és így tovább. A faktoriális jelölést használva ugyanezt így is felírhatjuk:

A képlet első alakjában a „kedvező esetek” kerülnek a számlálóba, itt a 365 elem n. osztályú ismétlés nélküli variációit értjük alatta. A nevezőben az összes előforduló esetet pedig a 365 n. osztályú ismétléses variációi jelentik. A második lépésben csak az emeletes törtet szüntettük meg.

Ezek után 1 ‒ p annak a valószínűsége, hogy legalább két embernek egy napra esik a születésnapja. n = 23-ra ez az érték kb. 0,507.

Vegyük észre, hogy a két embert nem választjuk ki elsőre. Ha az a kérdés, hogy milyen valószínűséggel van n emberből legalább egynek ugyanakkor a születésnapja, mint egy konkrét embernek, akkor a válasz:

 

ami n = 22-re kb. 0,059, vagyis csak kicsivel több, mint 1/17. Ahhoz, hogy ennek a valószínűsége több legyen mint 50%, nem 22, hanem 253 emberre lenne szükség! Ebben a képletben szintén ismétléses variációval állítottuk elő a kívánt esemény komplementerét.

A születésnap-paradoxon általánosítva értelmezhető hash függvényekre is: N-bites lenyomatokból (hashértékekből) valószínű ütközés nélkül sajnos nem 2N, hanem csak kb. 2N/2 generálható. Ezt használja ki az ún. születésnap-támadás különböző hashfüggvényeken alapuló titkosító algoritmusok ellen.

A paradoxon analitikus megközelítése 

Így ír önéletrajzában Halmos Pál Richárd magyar származású matematikus:

„A probléma megközelítésének egyik módja, hogy megfordítva tesszük fel a kérdést: »Legalább hány embernek kell a szobában lennie ahhoz, hogy kevesebb, mint 1/2 valószínűséggel legyen csupa különböző születésnapjuk?« […] a probléma lényegében a következő: találjuk meg a legkisebb n-et, amire

A szorzat felülről becsülhető a következőképpen:

Az első felső becslés a mértani és a számtani közepek közötti összefüggésből következik. Ez ismét becsülhető a határozott integrál definícióját felhasználva, amelynek analitikus módon kiszámított értéke pedig ismét felülről becsülhető az 1 ‒ x < e‒x összefüggést alapul véve. […] Az bizonyítás olyan fontos eszközöket használ fel, amellyel minden matematikát tanulónak illik elsajátítania. Csodálatos példája annak, hogy tisztán gondolkodással mennyi számítástól megkímélhetjük magunkat: az egyenlőtlenségek egy-két perc alatt felírhatók, míg a szorzatok kiszámítása lényegesen több időt venne igénybe, és a hibázás lehetősége is nagyobb lenne, akár papíron-ceruzával, akár számítógéppel végezzük. A számológép hasznos eszköz, de nem segít a probléma mélyebb megértésében, matematikai képességek elsajátításában, sem összetettebb, általánosabb elméletek megalkotásában.”

Hiba Halmos bizonyításában 

A fenti érvelésbe sajnos hiba csúszott, szerencsére nem végzetes. A

egyenlőtlenség ugyanis nem helytálló, amint az számítással egyszerűen ellenőrizhető (az egyenlőtlenség bal és jobb oldalának különbsége , azaz pozitív). De az érvelés korrigálható. A

szorzatban az első tényező értéke 1, ezért elhagyható. Innen

ahol az első egyenlőtlenség ismét számtani és mértani közepek egyenlőtlensége, a második pedig az 1 ‒ x < e‒x összefüggésből következik.

Az utolsó kifejezés értéke akkor és csak akkor kisebb ½-nél, ha

Ez többlettel 506-ra kerekíthető, amellyel az n2 ‒ n kifejezés pontosan n = 23 esetén egyenlő.

Kísérleti ellenőrzés 

A születésnap-paradoxon jól szimulálható számítógépes program segítségével. A következő parancs a Ruby programozási nyelv segítségét veszi igénybe:

 puts (1..30).collect {rand(365)+1}.uniq.length

ahol 30 az emberek száma, 365 pedig az egy évbe eső napok száma. Ha az eredmény (szintén egy szám) megegyezik az emberek számával (tehát ez esetben 30-cal), akkor mindenkinek más-más napon van a véletlenül sorsolt születésnapja. Ha kisebb, akkor voltak egyezések (méghozzá pontosan annyi, amennyi a különbség a kiírt és az eredeti szám között).

A következő kódrészlet Perl programozási nyelven íródott. Ez kilistázza azokat a számokat, amelyek a generált számsorban ismétlődnek.

 for (1..23) {$h{int(rand(365)+1)}++};
 for (keys %h) {print $_, ": ", $h{$_}, " times\n" if $h{$_} > 1}

Hivatkozások

További információk 
 A paradoxon kísérleti igazolása 

Valószínűségi paradoxonok
Matematikai problémák