🎂 생일 역설 계산기
23명이면 생일 같은 사람이 있을 확률이 50%? 모임 인원을 넣고 확률을 계산한 뒤 365칸 달력에 생일을 직접 뽑아 확인해 보세요.
365칸 달력에 직접 찍어 보기
이 계산기로 알 수 있는 것
학급이나 송년회, 동창회에서 "우리 중에 생일이 같은 사람 있을까?"를 물으면 대부분 "거의 없을걸요" 하고 답해요. 그런데 수학으로 따져 보면 23명만 모여도 생일이 같은 두 사람이 있을 확률이 50%를 넘어요. 365일 중에 겹치기가 어려울 것 같은 직감과 달리 확률이 꽤 높아서 "생일 역설"이라고 불러요. 모순은 아니고 직감이 틀리는 사례예요. 이 계산기는 모임 인원을 넣으면 (1) 생일이 같은 쌍이 하나라도 있을 확률, (2) 나와 같은 생일인 사람이 있을 확률, (3) 같은 생일 쌍이 몇 쌍쯤 있을지 기대값, (4) 50%·90%·99%를 넘기려면 몇 명이 필요한지를 한꺼번에 보여 줘요. 아래 365칸 달력에서 무작위 생일을 직접 뽑아 보면 계산값이 정말 맞는지 눈으로 확인할 수 있어요.
사용법
- 모임 인원을 나를 포함해서 넣어요. 10명, 23명, 30명, 50명, 100명 버튼으로 바로 불러올 수도 있어요.
- 큰 숫자가 생일이 같은 쌍이 하나라도 있을 확률이에요. 아래 목록에서 나와 같은 생일인 사람이 있을 확률도 따로 봐요.
- 한 번 뽑기를 누르면 그 인원의 생일을 무작위로 뽑아 365칸에 찍어요. 파란 칸은 한 명, 빨간 칸은 둘 이상이 겹친 날이에요.
- 100번 몰아서 뽑기를 누르면 같은 인원으로 100번을 한꺼번에 뽑아 몇 번 겹쳤는지 보여 줘요. 계산값과 가까운 비율이 나와요.
계산 원리
- 1년은 365일이고 생일은 모든 날에 고르게 퍼져 있다고 가정해요. 윤일(2월 29일)은 빼요.
- N명이 모두 다른 생일일 확률은 365/365 × 364/365 × 363/365 × … × (365−N+1)/365 예요. 첫 번째 사람은 아무 날이나, 두 번째는 첫 번째와 다른 364일, 세 번째는 363일… 이런 식으로 곱해요.
- "하나라도 겹칠 확률"은 1에서 위 값을 빼면 돼요. 예를 들어 23명이면 1 − 0.4927 = 0.5073, 즉 50.7% 예요.
- "나와 같은 생일인 사람이 있을 확률"은 나를 뺀 N−1명 중 한 명이라도 내 생일일 확률이라 1 − (364/365)N−1 이에요.
- 생일이 같은 쌍의 기대 개수는 전체 쌍의 수 N(N−1)/2 를 365로 나눈 값이에요.
직접 검산한 숫자: 인원별 확률
아래 값은 위 공식을 파이썬 정수 계산(경우의 수 365PN ÷ 365N)과 자바스크립트 곱셈 두 가지로 따로 구해 일치하는 것을 확인했어요.
| 인원 | 같은 생일 쌍이 있을 확률 | 나와 같은 생일이 있을 확률 | 전체 쌍의 수 |
|---|---|---|---|
| 5명 | 2.7% | 1.1% | 10쌍 |
| 10명 | 11.7% | 2.4% | 45쌍 |
| 15명 | 25.3% | 3.8% | 105쌍 |
| 20명 | 41.1% | 5.1% | 190쌍 |
| 23명 | 50.7% | 5.9% | 253쌍 |
| 30명 | 70.6% | 7.6% | 435쌍 |
| 40명 | 89.1% | 10.1% | 780쌍 |
| 50명 | 97.0% | 12.6% | 1,225쌍 |
| 57명 | 99.0% | 14.2% | 1,596쌍 |
| 70명 | 99.9% | 17.2% | 2,415쌍 |
| 100명 | 100.0% | 23.8% | 4,950쌍 |
23명이면 50.7%, 30명이면 70.6%, 50명이면 97.0%예요. 57명이면 99%를 넘고, 70명이면 99.9%예요. 반면 나와 같은 생일인 사람이 있을 확률은 23명 모임에서 겨우 5.9%예요. 이 확률이 50%를 넘으려면 253명이 필요해요. 두 확률의 차이가 생일 역설의 핵심이에요.
목표 확률별로 필요한 최소 인원
거꾸로 "몇 명이면 확률이 얼마를 넘을까"를 보면 직감과의 차이가 더 잘 보여요. 아래는 같은 생일 쌍이 있을 확률이 처음으로 목표를 넘는 인원이고, 윤년(2월 29일)은 빼고 365일로 계산했어요.
| 목표 확률 | 필요한 최소 인원 | 그 인원의 실제 확률 | 한 명 적을 때 |
|---|---|---|---|
| 10% 이상 | 10명 | 11.69% | 9명: 9.46% |
| 25% 이상 | 15명 | 25.29% | 14명: 22.31% |
| 50% 이상 | 23명 | 50.73% | 22명: 47.57% |
| 75% 이상 | 32명 | 75.33% | 31명: 73.05% |
| 90% 이상 | 41명 | 90.32% | 40명: 89.12% |
| 99% 이상 | 57명 | 99.01% | 56명: 98.83% |
확률을 10%에서 99%까지 끌어올리는 데 필요한 인원이 10명에서 57명으로, 365일의 6분의 1도 안 돼요.
왜 직감과 다를까
직감은 "내 생일과 겹치는 사람"을 먼저 떠올려서 23명 모임을 22번의 비교로 생각하기 때문이에요. 하지만 문제는 "누구든 한 쌍이라도"예요. 23명 안에서 서로 만들 수 있는 쌍은 253쌍이에요. 쌍마다 생일이 같을 확률은 1/365지만, 253쌍을 모두 확인하면 253/365 = 0.69쌍이 겹칠 것으로 기대돼요. 인원이 늘어나면 쌍의 수는 인원의 제곱에 가깝게 늘어나서 확률이 빠르게 올라가요. 10명은 45쌍, 30명은 435쌍, 50명은 1,225쌍이에요.
상황별로 읽는 법
- 한 학급 30명: 생일이 같은 친구가 있을 확률이 70.6%예요. 학급이 몇 개 있으면 대부분의 반에서 같은 생일 쌍이 한 번쯤 나와요.
- 10명 안팎 소규모 모임: 11.7%라서 안 겹치는 편이 더 흔해요. 겹치면 꽤 드문 일이에요.
- 직장 팀 50명: 97.0%라서 거의 확실하게 같은 생일 쌍이 있어요. 생일 파티를 월 단위로 모아서 할 때 같은 날이 겹치는 경우가 생기는 이유예요.
- 100명 이상: 계산값은 100%에 아주 가까워요(100명이면 99.99997%). 실제로 안 겹치기는 사실상 불가능해요.
따라 해 보기: 손으로 22명까지 곱해 보기
계산기를 쓰지 않고도 감을 잡을 수 있어요. 첫 사람은 어떤 날이든 괜찮으니 1이에요. 둘째가 첫째와 다른 날일 확률은 364/365 = 0.9973, 셋째가 앞의 둘과 모두 다를 확률은 363/365 = 0.9945예요. 이렇게 22번째 사람까지 곱하면 서로 다를 확률은 약 0.524, 23번째 사람(343/365 = 0.9397)까지 곱하면 0.4927이 돼요. 여기서 1을 빼면 0.5073이라 23명에서 처음으로 절반을 넘어요. 곱하는 수가 하나씩 작아지기 때문에 인원이 늘수록 "다 다를 확률"은 점점 더 빠르게 떨어져요. 그래서 30명에서 70.6%, 40명에서 89.1%, 50명에서 97.0%로 올라가는 거예요.
이 계산은 학급 편성, 해시 충돌(서로 다른 입력이 같은 값이 되는 현상), 키 중복 같은 컴퓨터 분야 문제에도 똑같이 쓰여요. 값의 가짓수가 365 대신 훨씬 많아도 "가짓수의 제곱근쯤 되는 개수만 모여도 한 쌍은 겹친다"는 감각은 그대로예요. 365의 제곱근은 약 19.1이고, 실제로 50%가 되는 인원은 23명으로 가까워요.
읽을 때 주의할 점
- 실제 생일은 월별로 조금씩 쏠려 있어요. 균등하게 퍼진 경우보다 같은 생일이 나올 확률이 아주 조금 더 높아져서, 이 계산값은 실제보다 살짝 낮게 나오는 쪽이에요.
- 쌍둥이·형제처럼 생일이 상관된 경우, 같은 날 출산을 맞춘 경우는 이 계산에 들어 있지 않아요.
- 시뮬레이션은 브라우저의 난수로 뽑아서 눌러 볼 때마다 결과가 달라요. 100번 정도에서는 계산값에서 몇 퍼센트포인트 벗어나도 정상이에요.
- 개인 생일을 입력하지 않아요. 입력한 인원수는 이 브라우저 안에서만 쓰이고 저장되지 않아요.
- 참고: Birthday problem (Wikipedia) — 23명 50.7%, 근사식과 변형 문제.
- 다른 확률 계산이 궁금하면 시리즈 승리 확률 계산기나 나이 계산기와 함께 써 보세요.