홈 / 사용 가이드

조 편성 6번 해도 서로 다 만나지 못한다

여러 개의 팀 이름표가 놓인 탁자 위에서 돋보기로 이름을 짝지어 살펴보는 그림

조 편성을 몇 번 하다 보면 결국 모두가 모두와 한 번쯤은 같은 조가 될 것 같습니다. 정말 그럴까요? 우리는 뽑고의 팀 나누기 함수를 그대로 호출해 같은 명단을 여러 번 조 편성하면서, 한 번도 같은 조가 되지 못한 쌍이 몇 쌍 남는지를 세었습니다. 이론값은 조합론으로 따로 계산해 맞대 보았고, 어긋나는 부분은 원인까지 적었습니다.

실험은 이렇게 했습니다

같은 명단을 되풀이해서 조 편성하는 상황을 만들었습니다. 명단은 20명, 23명, 30명이고 팀 수는 4팀·5팀·6팀 가운데 6가지 조합을 골랐습니다. 조를 나누는 데는 뽑고의 랜덤 팀 나누기가 쓰는 splitTeams 함수를 그대로 호출했습니다. 한 번의 조 편성에서 두 사람이 같은 팀이 되는 비율은 조합마다 30만 번, 같은 반을 최대 8번까지 반복해서 나누는 시험은 10만 개 반을 만들어 돌렸습니다. 실행 환경은 Node.js v23.10.0, 2026년 10월 14일입니다.

비교할 이론값은 조합론으로 따로 계산했습니다. 서로 다른 두 사람 가운데 첫 사람이 크기 s인 팀에 있을 확률은 s/n이고, 그 팀의 나머지 s−1자리 중 하나에 둘째 사람이 있을 확률은 (s−1)/(n−1)입니다. 팀 크기가 모두 같지 않을 수 있으니 팀마다 더하면, 두 사람이 같은 팀일 확률은 p = Σ s(s−1) ÷ n(n−1)입니다. 서른 명을 다섯 팀으로 나누면 6명짜리 5팀이라 p = 5×30÷870 = 17.24%입니다. [계산]

서로 다른 조 편성은 앞의 결과를 모르고 따로 뽑으므로 독립입니다. 그래서 한 쌍이 k번 나눠도 한 번도 같은 팀이 되지 못할 확률은 (1−p)의 k제곱이고, 못 만난 쌍 수의 평균은 전체 쌍 수 n(n−1)/2에 이 값을 곱하면 됩니다. 쌍들끼리 서로 영향을 주더라도 평균은 이 곱셈으로 정확히 나옵니다. [계산]

한 번의 조 편성: 두 사람이 같은 팀일 확률

먼저 한 번 나눌 때의 확률이 이론과 맞는지 보았습니다. 같은 인원이라도 팀 수가 많을수록 확률이 내려갑니다(30명이면 4팀 22.5%, 5팀 17.2%). 팀 수가 같으면 인원이 많을수록 1/팀 수(4팀이면 25%)에 가까워져서, 4팀일 때 20명은 21.1%, 23명(6명 3팀과 5명 1팀)은 21.7%, 30명은 22.5%입니다. 30만 번 나눈 뒤 명단의 첫째와 둘째가 같은 팀이었던 비율은 20명 4팀에서 21.07%, 30명 5팀에서 17.27%로 이론과 표준오차(0.07%p 안팎) 이내로 맞았습니다. [실측]

여기서 하나 짚어 둘 것이 있습니다. 모든 쌍의 같은 팀 비율을 평균하면 한 번 나눌 때 같은 팀이 되는 쌍의 수가 늘 같기 때문에 이론값과 정확히 일치할 수밖에 없습니다. 그 일치는 시험이 되지 못하므로 표에 싣지 않았습니다. 시험이 되는 것은 쌍 하나하나입니다. 쌍이 수백 개이면 그중 몇 개는 우연히 이론에서 꽤 벗어나 보이는데, 쌍마다 이론과의 차이를 표준오차로 나눈 값의 최댓값은 가장 큰 조합에서도 3.20배였습니다. 쌍이 400개 남짓이면 표준오차의 3배 안팎까지 벗어나는 쌍이 하나쯤 나오는 것이 정상이므로, 어느 쌍이 특별히 자주 또는 드물게 묶이는 일은 없었다고 읽을 수 있습니다. [실측]

두 사람이 같은 팀이 될 확률 (한 번의 조 편성, 조합마다 30만 번)
인원 · 팀 수팀 크기이론 [계산]특정 두 사람 [실측]쌍마다의 범위 [실측]이론에서 가장 벗어난 쌍 [실측]
20명 · 4팀5명 4팀21.05%21.07%20.88% ~ 21.27%표준오차의 2.9배
20명 · 5팀4명 5팀15.79%15.77%15.62% ~ 15.96%표준오차의 2.6배
30명 · 4팀8명 2팀 · 7명 2팀22.53%22.47%22.29% ~ 22.72%표준오차의 3.2배
30명 · 5팀6명 5팀17.24%17.27%17.05% ~ 17.45%표준오차의 3.1배
30명 · 6팀5명 6팀13.79%13.65%13.61% ~ 13.98%표준오차의 3.0배
23명 · 4팀6명 3팀 · 5명 1팀21.74%21.60%21.55% ~ 21.91%표준오차의 2.6배

같은 반을 여러 번 나누면

이제 같은 명단을 여러 번 나눠 봅니다. 서른 명을 다섯 팀으로 나누는 반에서 한 번 나눈 뒤 한 번도 같은 팀이 되지 못한 쌍은 360쌍으로, 전체 435쌍의 82.8%입니다. 여섯 번 나누고 나서도 평균 139.7쌍(32.1%)이 서로 만나지 못했고, 여덟 번 나눈 뒤에도 95.7쌍(22.0%)이 남았습니다. [실측] 이론값 139.8쌍(여섯 번), 95.7쌍(여덟 번)과 0.1쌍 이내로 맞았습니다. [계산]

스무 명 네 팀이라면 조금 빠릅니다. 여섯 번 나눈 뒤 못 만난 쌍이 평균 46.0쌍으로 전체 190쌍의 24.2%입니다. [실측] 팀 수가 적을수록 한 번에 만날 확률이 높기 때문입니다. 표의 마지막 열은 「모두가 서로 한 번씩은 만난」 반의 비율인데, 10만 개 반 가운데 여덟 번 안에 그렇게 된 반은 두 조합 모두 하나도 없었습니다. [실측]

30명 · 5팀: 같은 반을 k번 나눈 뒤 한 번도 같은 팀이 못 된 쌍 (435쌍, 10만 개 반)
조 편성 횟수이론 [계산]실측 [실측]전체 쌍 중 비율 [실측]모두가 만난 반 [실측]
1번360.0쌍360.0쌍82.8%0.00%
2번297.9쌍297.9쌍68.5%0.00%
3번246.6쌍246.6쌍56.7%0.00%
4번204.1쌍204.0쌍46.9%0.00%
5번168.9쌍168.8쌍38.8%0.00%
6번139.8쌍139.7쌍32.1%0.00%
7번115.7쌍115.6쌍26.6%0.00%
8번95.7쌍95.7쌍22.0%0.00%
20명 · 4팀: 같은 반을 k번 나눈 뒤 한 번도 같은 팀이 못 된 쌍 (190쌍, 10만 개 반)
조 편성 횟수이론 [계산]실측 [실측]전체 쌍 중 비율 [실측]모두가 만난 반 [실측]
1번150.0쌍150.0쌍79.0%0.00%
2번118.4쌍118.4쌍62.3%0.00%
3번93.5쌍93.5쌍49.2%0.00%
4번73.8쌍73.8쌍38.9%0.00%
5번58.3쌍58.3쌍30.7%0.00%
6번46.0쌍46.0쌍24.2%0.00%
7번36.3쌍36.3쌍19.1%0.00%
8번28.7쌍28.7쌍15.1%0.00%

모두가 서로 만나려면 몇 번이 필요할까

모든 쌍이 한 번씩은 같은 팀이 될 때까지 조 편성을 반복하면 몇 번이나 걸릴까요. 서른 명 다섯 팀 반에서는 평균 35.7번, 중앙값이 35번이었고 10만 개 반 가운데 10%는 28번 이하, 10%는 45번 이상이 걸렸습니다. 가장 오래 걸린 반은 95번이었습니다. 스무 명 네 팀은 평균 25.2번입니다. [실측] 한 학기에 조 편성을 몇 번 하든, 무작위로만 나눈다면 모두가 모두를 만났다고 말하기는 어렵다는 뜻입니다.

표에는 비교용 근사값도 적었습니다. 쌍들이 서로 독립이라고 가정하면 모든 쌍이 만나는 데 걸리는 횟수는 (ln 쌍 수 + 0.577) ÷ −ln(1−p) 근처로 계산됩니다. [계산] 서로 독립이 아니라는 점에서 이 근사가 틀릴 수도 있다고 예상했습니다. 가와 나가 같은 팀이고 가와 다도 같은 팀이면 나와 다는 반드시 같은 팀이어서, 한 번의 조 편성에서 쌍들은 뭉쳐서 만나기 때문입니다. 그런데 실측은 네 조합 모두에서 근사보다 일정하게 0.5번에서 0.6번 길었을 뿐이고, 근사에 0.5를 더하면 실측과 0.1번 이내로 맞았습니다. 이 0.5번은 근사가 시간을 연속으로 보는 데서 오는 차이로 읽힙니다. 조 편성은 정수 번만 하므로 마지막 쌍이 만나는 순간이 평균 반 번쯤 늦게 잡힙니다. 쌍들이 뭉쳐서 만나는 효과는 이 크기에서는 평균에 거의 영향을 주지 않았습니다. [실측]

모든 쌍이 만날 때까지 필요한 조 편성 횟수 (조합마다 10만 개 반)
인원 · 팀 수한 번에 만날 확률평균 [실측]중앙값 [실측]10%~90% [실측]가장 오래 걸린 반 [실측]독립 가정 근사 [계산]
20명 · 4팀21.1%25.2번24번19~32번81번24.6번
30명 · 5팀17.2%35.7번35번28~45번95번35.2번
30명 · 6팀13.8%45.4번44번36~57번119번44.8번
20명 · 5팀15.8%34.4번33번26~44번99번33.9번

같은 쌍이 연달아 또 만나는 일

새로운 사람을 만나고 싶은데 지난번과 같은 조가 되었다는 불만도 있습니다. 서른 명 다섯 팀 반에서 첫 번째와 두 번째 조 편성 모두 같은 팀이었던 쌍은 평균 12.9쌍이었습니다. 이론은 435쌍에 p의 제곱을 곱한 12.9쌍으로, 맞습니다. [실측] 한 반에서 열세 쌍 가까이는 연속으로 같은 팀이 되는 것이 정상이라는 뜻입니다.

이것은 뽑고의 팀 나누기가 이전 결과를 기억하지 않기 때문에 생기는 현상이기도 합니다. 매번 처음부터 섞으므로 지난번에 같은 팀이었다는 사실이 이번 조 편성에 영향을 주지 않습니다. 장점은 어느 쌍도 불리하지 않다는 것이고, 단점은 이전 조를 피해 주지 않는다는 것입니다.

이 숫자를 모임에 적용하면

첫째, 무작위로 조를 몇 번 짜 놓고 모두가 서로 알게 되었다고 기대하지 마세요. 서른 명이면 여섯 번을 나누고도 세 쌍 중 한 쌍꼴(약 32%)은 같은 조가 된 적이 없습니다. 둘째, 같은 조가 연속되는 것을 조작으로 의심하지 마세요. 이 정도 중복은 이론이 예측하는 범위입니다. 셋째, 모두를 만나게 하는 것이 목적이라면 무작위 반복보다 설계된 편성이 맞습니다. 모든 사람이 서로 한 번씩 만나도록 여러 주에 걸쳐 조를 짜는 문제는 수학에서 사회 연결 문제(social golfer problem)로 연구되어 왔고, 둘씩 짝을 짓는 경우에는 모두가 서로 한 번씩 만나는 리그전 대진표를 짜는 방법이 알려져 있습니다.

뽑고의 팀 나누기에는 그런 설계 기능이 없습니다. 이전 조를 피하고 싶다면 사람이 이전 편성표를 보관해 두고, 새 조를 뽑은 뒤 지난번과 겹치는 쌍을 확인해 필요하면 한 번만 다시 나누는 규칙을 미리 정해 두세요. 다만 서른 명 다섯 팀에서는 지난번과 같은 조가 되는 쌍이 평균 13쌍이나 되므로, 겹침을 0으로 맞추는 규칙은 현실적이지 않습니다. 「지난번과 같은 조가 몇 쌍 이하」처럼 기준을 정해 두어야 합니다.

이 실험의 한계

이 실험은 모든 조 편성이 같은 인원과 같은 팀 수로 이루어지고 결석이 없다고 가정했습니다. 실제 학급에서는 사람이 빠지거나 들어오고 팀 수도 바뀝니다. 그런 경우에도 두 사람이 같은 팀이 될 확률은 같은 식으로 계산할 수 있지만, 이 글의 표를 그대로 쓸 수는 없습니다. 또 이 글은 뽑고의 함수가 쌍을 고르게 묶는지를 확인한 것이지, 팀 구성이 좋은지를 평가한 것이 아닙니다. 팀의 실력 균형이나 성격 조합은 이 도구가 다루지 않습니다.

참고한 자료

바로 써 보기

이런 글도 있어요