Strona główna Statystyka Paradoks urodzinowy — symulacja prawdopodobieństwa

🎂 Paradoks urodzinowy — symulacja prawdopodobieństwa

Ile osób potrzeba, by szansa na wspólne urodziny wyniosła 50%? Tylko 23! Uruchom symulacje Monte Carlo, obserwuj rosnącą krzywą prawdopodobieństwa i kolizje na pierścieniu 365 dni roku.

Statystyka3DŁatwy60 FPS
birthday-paradox ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O paradoksie urodzinowym

Paradoks urodzinowy zadaje pytanie: ile osób musi znaleźć się w pokoju, aby prawdopodobieństwo, że co najmniej dwie z nich mają urodziny tego samego dnia, wyniosło 50%? Odpowiedź, sprzeczna z intuicją, to zaledwie 23 osoby — znacznie mniej, niż większość ludzi się spodziewa. Prawdopodobieństwo oblicza się poprzez dopełnienie: P(brak wspólnych urodzin) = 365/365 × 364/365 × 363/365 × … × (365−n+1)/365, więc P(co najmniej jedna zgodność) = 1 − P(brak zgodności). Obliczenie to należy do szerszej klasy problemów prawdopodobieństwa kolizji, a ta sama matematyka rządzi kolizjami skrótów (hashy) w informatyce oraz profilowaniem DNA.

Symulacja generuje grupy n losowych dat urodzin i sprawdza kolizje w czasie rzeczywistym, gromadząc empiryczne wskaźniki zgodności pokazywane jako cyjanowe kropki na wykresie. Czerwona krzywa teoretyczna podąża za dokładnym wzorem. Obserwuj, jak obie się zbiegają: przy n = 23 obie osiągają ~50,7%, a przy n = 57 prawdopodobieństwo wspólnych urodzin przekracza 99%. Dostosuj liczebność grupy, liczbę prób na krok i prędkość animacji, aby zbadać tę zależność.

Najczęściej zadawane pytania

Dlaczego odpowiedź brzmi 23, a nie 183 (połowa 365)?

Ludzie instynktownie porównują każdą osobę tylko z sobą samą, wyobrażając sobie szansę 1/365 dla każdej nowej osoby. Jednak 23 osoby mogą utworzyć 23×22/2 = 253 różne pary, a każda para ma szansę 1/365 na wspólne urodziny. Prawdopodobieństwo, że co najmniej jedna z 253 par się zgadza, jest znacznie wyższe niż porównywanie tylko jednej osoby z resztą pokoju. Kluczowym spostrzeżeniem jest szybki wzrost liczby par.

Jaki jest dokładny wzór na to prawdopodobieństwo?

P(zgodność | n osób) = 1 − (365! / ((365−n)! × 365^n)). Równoważnie, P(brak zgodności) = ∏(k=0 do n−1) (365−k)/365. Dla n = 23, P(zgodność) ≈ 0,5073 (czyli około 50,7%). Dla n = 70, P(zgodność) przekracza 99,9%. Liczby te zakładają, że urodziny są rozłożone równomiernie na 365 dni — w rzeczywistości urodziny skupiają się w pewnych miesiącach, co nieznacznie zwiększa prawdopodobieństwo w realnym świecie.

Gdzie paradoks urodzinowy pojawia się poza zagadkami z rachunku prawdopodobieństwa?

„Atak urodzinowy” (birthday attack) to atak kryptograficzny wykorzystujący prawdopodobieństwo kolizji do złamania podpisów cyfrowych. Jeśli funkcja skrótu generuje wyniki o długości m bitów, kolizji można się spodziewać po mniej więcej 2^(m/2) próbach — znacznie mniej niż 2^m prób potrzebnych do ataku siłowego (brute-force). Dlatego SHA-256 (wyniki 256-bitowe) zapewnia odporność na kolizje na poziomie zaledwie 128 bitów, a nie 256.

Czy paradoks zakłada, że urodziny są rozłożone równomiernie?

Tak — wzór zakłada, że każdy dzień urodzin jest jednakowo prawdopodobny spośród 365 dni (pomijając lata przestępne). W rzeczywistości liczba urodzeń zmienia się w zależności od miesiąca i dnia tygodnia; w wielu krajach latem rodzi się o 10–20% więcej dzieci. Nierównomierne rozkłady jedynie zwiększają prawdopodobieństwo zgodności, ponieważ kolizje są bardziej prawdopodobne, gdy urodziny się skupiają. Założenie równomiernego rozkładu jest więc konserwatywne.

Ile osób potrzeba, aby prawdopodobieństwo zgodności wynosiło 99%?

Wystarczy 57 osób, aby osiągnąć prawdopodobieństwo 99%, a 70 osób, by przekroczyć 99,9%. Prawdopodobieństwo osiąga 100% (zgodnie z zasadą szufladkową) dopiero gdy n > 365, ponieważ wtedy dwie osoby muszą mieć te same urodziny. W praktyce krzywa jest już tak stroma przy n = 60, że w grupie tej wielkości niemal na pewno znajdzie się zgodność.

Co się zmienia, jeśli weźmiemy pod uwagę rok liczący 366 dni?

Uwzględnienie 29 lutego (dnia przestępnego) niemal nie zmienia wyniku. Wymagana liczebność grupy dla 50% prawdopodobieństwa wzrasta z 23 do 24, ponieważ dodatkowy możliwy dzień urodzin nieznacznie zmniejsza szansę kolizji. Jednak ponieważ lata przestępne zdarzają się tylko raz na cztery lata, a urodzenia 29 lutego są rzadkie, praktyczny wpływ na rzeczywiste rozkłady urodzin jest znikomy.

Jak paradoks urodzinowy odnosi się do tablic mieszających (hash) w informatyce?

Podczas wstawiania n elementów do tablicy mieszającej z m gniazdami, prawdopodobieństwo co najmniej jednej kolizji wynosi w przybliżeniu 1 − e^(−n²/2m) dla dużych m — to wzór urodzinowy w przebraniu. Tablica mieszająca z m = 365 gniazdami osiąga 50% prawdopodobieństwa kolizji przy n ≈ 23, dokładnie odpowiadając problemowi urodzinowemu. Ta analogia leży u podstaw projektowania funkcji skrótu i analizy współczynnika obciążenia tablic mieszających.

Czy możliwa jest zgodność urodzin trzech osób naraz?

Tak — prawdopodobieństwo, że co najmniej trzy osoby w grupie mają te same urodziny (potrójna zgodność), jest znacznie niższe niż w przypadku pary. Potrzeba około 83–88 osób, aby uzyskać 50% szansę na potrójną zgodność, w porównaniu z zaledwie 23 dla pary. Uogólniając, liczebność grupy potrzebna dla zgodności k osób rośnie w przybliżeniu jak (k! × 365)^(1/k), czyli znacznie wolniej niż w przypadku pary.

Dlaczego empiryczne kropki czasem różnią się od czerwonej krzywej?

Symulacja Monte Carlo podlega wariancji próbkowania: przy małej liczbie prób empiryczne oszacowania mogą zauważalnie odbiegać od wartości teoretycznych. Odchylenie maleje jak 1/√(liczba prób), więc 10 000 prób zmniejsza typowy błąd o połowę w porównaniu z 2500 próbami. Kliknij wielokrotnie „Uruchom 1000 prób”, aby zobaczyć, jak cyjanowe kropki zbiegają się do teoretycznej czerwonej krzywej.

Jaki jest uogólniony problem urodzinowy dla innych rozmiarów „roku”?

Jeśli dni zastąpimy dowolnym zbiorem d możliwości, próg 50% prawdopodobieństwa kolizji występuje przy w przybliżeniu n ≈ 1,18 × √d osobach. Dla d = 365 daje to n ≈ 22,5 ≈ 23. Dla 2^64 możliwych skróconych wyników SHA-256 używanych w niektórych zastosowaniach, kolizji można się spodziewać po około 2^32 ≈ 4 miliardach prób — wciąż znacznie mniej niż wymagałoby wyczerpujące przeszukiwanie.

⚙ Pod maską

Wystarczy 23 osoby, aby szansa na wspólne urodziny wyniosła 50% — uruchom próby Monte Carlo i obserwuj kolizje pojawiające się na pierścieniu 365 dni.

Canvas 2DProbabilityBirthday ParadoxMonte CarloCombinatoricsStatistics

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

Podobne symulacje