우연의 일치는 우연이 아니다?

모임에서 두 사람의 생일이 같다는 걸 알게 되면 "이건 우연이 아니야" 싶은 소름이 돋습니다. 그런데 방에 사람이 몇 명만 있어도 이런 일은 오히려 일어나지 않는 쪽이 이상합니다. 인원, 특징의 가짓수, 각 특징이 가질 수 있는 값의 수를 바꾸며 "누군가 어딘가에서 일치"와 "나와 일치"가 어떻게 다른지 지켜보세요.

모델은 이렇게 움직입니다

직접 돌려보기

방에 있는 사람 수 N. 23명이 생일 문제의 유명한 숫자예요
1이면 생일만. 2 이상이면 고향·취미 같은 특징이 더해져요
생일 말고 다른 특징이 가질 수 있는 값의 수 (예: 취미 30가지). 클수록 일치가 드물어요

① 모임 지켜보기

모임이 한 번씩 열립니다. 위쪽의 붉은 점이 나이고, 나머지 사람은 원 둘레에 서 있습니다. 옅은 실은 가능한 모든 짝이고, 일치한 쌍은 굵은 선으로 이어지며 나와 일치한 선은 붉게 표시됩니다. 일치한 사람 옆에는 같은 생일(월/일)이 적힙니다. 아래 칸은 지금까지 열린 모임으로, 파란 칸은 누군가 일치한 모임, 붉은 테두리는 나와 일치한 모임입니다.

② 어딘가에서 일치할 확률

가로는 모인 사람 수, 세로는 방 안 어딘가에 일치한 쌍이 있을 확률입니다. 파란 선과 점은 지금 설정, 점선은 생일만 볼 때의 계산값입니다. 점선의 50%를 넘는 지점이 유명한 23명입니다.

계산 중…

③ "어딘가에서"와 "나와"

같은 지금 설정으로 인원을 365명까지 늘렸습니다. 파란 선은 "누군가 어딘가에서 일치", 붉은 선은 "나와 일치"입니다. 붉은 점선은 특징이 생일뿐일 때 나와 일치할 확률로, 50%를 넘으려면 나 말고 253명이 필요합니다.

계산 중…

④ 사람은 N명, 짝은 N(N−1)/2쌍

회색은 사람 수, 파랑은 가능한 짝의 수, 붉은 선은 지금 설정에서 일치한 쌍의 평균 예상 수입니다. 인원이 조금만 늘어도 일치할 기회가 훨씬 빠르게 늘어납니다.

이 결과가 말하는 것, 말하지 않는 것

말하는 것:

상세 설명

말하는 것: 생일만 볼 때(특징 1가지), 23명이면 방 안 어딘가에서 생일이 같은 쌍이 있을 확률은 50.7%, 57명이면 99.0%였습니다(2만 번 모임을 연 결과도 50.4%, 99.0%로 계산값과 같았습니다). 23명 사이에는 가능한 짝이 253쌍이나 있기 때문입니다. 그런데 "나와" 생일이 같은 사람이 있을 확률은 같은 23명에서 5.9%, 57명에서도 14.2%에 그쳤고, 50%를 넘으려면 나 말고 253명(모두 254명)이 필요했습니다. 같은 23명인데 "누군가 어딘가에서"는 50.7%, "나와"는 5.9%입니다. 특징을 늘리면 "어딘가에서"는 금방 거의 확실해집니다. 23명에서 특징이 생일과 30가지짜리 하나(특징 2가지)이면 방 안 어딘가에서 일치할 확률은 99.999%를 넘어 사실상 100%였고, 나와 일치할 확률도 55.3%로 올라갔습니다. 특징이 3가지면 나와 일치할 확률이 78.8%, 6가지면 97.7%였습니다. 소름 돋는 일치가 일어나려면 "내가 정한 특정한 일치"가 아니라 "아무 일치나 하나"만 있으면 되기 때문에, 사람이 모이는 곳마다 일치는 늘 어딘가에서 일어납니다. 통계학자 Diaconis와 Mosteller(1989)는 이런 현상을 "아주 큰 수의 법칙(law of truly large numbers)"이라고 불렀습니다. 표본이 충분히 크면 아무리 드문 일도 어딘가에서는 일어난다는 뜻입니다.

말하지 않는 것:

상세 설명

말하지 않는 것: 실제 세상의 모든 소름 돋는 우연이 그냥 우연이라는 뜻은 아닙니다. 이 모델은 특징이 균등하고 서로 독립이라고 가정하는데, 현실의 특징은 그렇지 않아서 일치가 더 잦거나 드물 수 있습니다. 생일 문제의 확률도 일치 가능한 쌍이 많다는 것만 보여줄 뿐, 어떤 특정한 사건이 우연이었는지 아닌지는 판정하지 못합니다. 또 일치가 어딘가에서 흔하다고 해서 나에게 일어난 일이 특별하게 느껴지는 마음이 틀렸다는 뜻도 아닙니다. 나와 일치할 확률은 낮으니, 나에게 일어난 일이 드물게 느껴지는 건 맞습니다. 이 페이지는 현실의 일치 사례나 발생 빈도에 대한 통계를 담고 있지 않습니다.

이론적 근거와 구현 메모