끝을 모르는 기록에서 한 개 뽑기, 매번 반반 바꾸면 공정할까요?

최종 길이를 모르는 기록을 읽으며 후보 하나만 저장해요. 읽은 개수를 고정해 비교할 때, 각 기록이 같은 확률로 남게 하는 교체 규칙을 살펴봐요. 매번 반반으로 바꾸면 왜 앞선 기록과 뒤의 기록이 다른 기회를 얻는지도 비교해요.

나무 책상 위 닫힌 노트북 생성 이미지

이미지: AI 생성 · 수학 이야기

서로 다른 기록 A,B,C,D,…가 정해진 순서로 와요. 처음에는 A를 한 칸에 담아요. n번째가 오면 이전 후보를 새 기록으로 교체할 확률이 pₙ이고 아니면 그대로 둬요. 각 결정에는 이전 결정과 독립인 새 난수를 쓰고 pₙ은 n에만 의존해요. 최종 길이는 추출 난수와 무관한 파일 끝으로 정해지지만 미리 몰라요. 모든 고정 시점 n에서 지금까지 온 기록이 같은 확률로 후보가 되게 하려면 pₙ을 어떻게 정해야 하나요? 언제나1/2로 교체해도 되나요?

P(n번째 도착 때 교체)=pn,n≥2.P(\text{n번째 도착 때 교체})=p_n,\qquad n\ge2.

n번째 기록은 그 도착 순간에 교체해야만 후보가 되므로 그 확률 pₙ이 바로1/n이어야 해요. 이것이 필요한 조건이에요. 이전 n−1개가 각1/(n−1)로 남아 있었다면 교체하지 않을 확률(n−1)/n을 곱해 각1/n이 돼요. 처음 A가 유일한 시점부터 귀납하면 이 조건은 충분하기도 해요.

pn=1n,1n−1(1−1n)=1n.p_n=\frac1n,\qquad \frac1{n-1}\left(1-\frac1n\right)=\frac1n.

반반으로만 교체하면 네 기록 뒤 A,B,C,D의 확률은1/8,1/8,1/4,1/2입니다. 먼저 온 기록이 살아남아야 하는 교체 횟수가 더 많기 때문이에요. 각 교체 결정이 반반이라는 국소 설명은 최종 네 기록의 균등한 기회를 뜻하지 않아요. 파일이 고정 길이 N일 때 i번째 기록은 도착 때 채택확률과 이후 생존확률을 곱하면1/N이 돼요. i=1은 초기 후보라는 별도 시작조건으로 처리해요.

Vitter의 논문은 길이를 미리 모르는 순차 파일을 다루고 Waterman의 Algorithm R을 설명해요. 여기서는 한 칸만 남기는 경우에 공정성을 요구해 교체 법칙의 필요성과 충분성을 직접 따졌어요. 파일 끝이 후보의 정체에 따라 달라지는 경우는 지금의 끝 조건에 포함하지 않아요.

교사는 “이 단계에서 교체가 공정하다”와 “처리된 모든 기록의 기회가 같다”를 따로 쓰게 해요. 1/n은 외울 상수가 아니라 새 기록도1/n의 기회를 가져야 한다는 요구에서 나와요.

착안 원문: Jeffrey Scott Vitter, Random Sampling with a Reservoir (1985). 수치·표·문항·풀이를 새로 만든 교육용 모형이며 원문 자료의 실제 관측값을 보고한 것이 아니에요.

이 글 공유하기

개인정보 및 방문 통계 안내