Linearism › 이산수학 › DM.7

7강. 경우의 수

이산수학 · 3부. 세기

기본 · 약 15분 · 연습문제 7 · 그림 1

요약

합의 법칙과 곱의 법칙, 순열과 조합, 중복 허용, 이항정리와 파스칼 삼각형, 별과 막대

경우의 수를 세는 일은 “하나씩 나열해 세기”를 피하는 기술입니다. 두 법칙(합과 곱)과 두 대상(순열과 조합)만으로 대부분의 문제를 풉니다. 핵심은 순서가 중요한지, 같은 것을 다시 고를 수 있는지를 먼저 정하는 것입니다.

7.1 합의 법칙과 곱의 법칙

정리 7.1 (합의 법칙). 서로 겹치지 않는 두 경우 AA, BB가 각각 mm, nn가지이면 “AA 또는 BB”는 m+nm + n가지입니다. 집합으로는 서로소인 AA, BB에 대해 ∣A∪B∣=∣A∣+∣B∣|A \cup B| = |A| + |B|입니다.

정리 7.2 (곱의 법칙). 첫 단계가 mm가지이고, 각 경우마다 둘째 단계가 nn가지이면 두 단계를 차례로 하는 방법은 mnmn가지입니다. 집합으로는 ∣A×B∣=∣A∣∣B∣|A \times B| = |A||B|입니다.

예제 7.3. 영문 대문자 2개 뒤에 숫자 3개가 오는 번호판은 262⋅103=676,00026^2 \cdot 10^3 = 676{,}000개입니다.

예제 7.4. 길이 8인 비트열은 28=2562^8 = 256개입니다. 그중 0으로 시작하거나 11로 끝나는 것은 27+26−25=1602^7 + 2^6 - 2^5 = 160개입니다(겹치는 “0으로 시작하고 11로 끝남”을 빼므로 4강의 정리 4.10).

7.2 순열

정의 7.5 (순열). 서로 다른 nn개에서 rr개를 골라 순서 있게 늘어놓는 것을 rr-순열이라 하고 그 수를 P(n,r)P(n, r)로 씁니다.

정리 7.6. P(n,r)=n(n−1)⋯(n−r+1)=n!(n−r)!P(n, r) = n(n-1)\cdots(n-r+1) = \dfrac{n!}{(n-r)!}. 특히 nn개를 모두 늘어놓는 방법은 n!n!가지입니다.

증명. 첫 자리는 nn가지, 둘째 자리는 남은 n−1n-1가지, …, rr번째 자리는 n−r+1n - r + 1가지이므로 곱의 법칙으로 나옵니다. □

0!=10! = 1로 약속합니다. 아무것도 늘어놓지 않는 방법은 1가지이기 때문입니다.

7.3 조합

정의 7.7 (조합). 서로 다른 nn개에서 순서 없이 rr개를 고르는 것을 rr-조합이라 하고 그 수를 (nr)\binom{n}{r} 또는 C(n,r)C(n, r)로 씁니다.

정리 7.8. (nr)=n!r! (n−r)!\dbinom{n}{r} = \dfrac{n!}{r!\,(n-r)!}.

증명. rr-순열은 “rr개를 고르고((nr)\binom{n}{r}가지) 그 rr개를 늘어놓는(r!r!가지)” 것이므로 P(n,r)=(nr)⋅r!P(n, r) = \binom{n}{r} \cdot r!입니다. □

이 증명처럼 “한 가지를 여러 번 셌으면 그 배수로 나눈다”는 생각이 셈의 기본 도구입니다.

정리 7.9. (nr)=(nn−r)\binom{n}{r} = \binom{n}{n-r}. rr개를 고르는 것은 남길 n−rn - r개를 고르는 것과 같습니다.

예제 7.10. 10명 중 회장, 부회장을 뽑는 방법은 P(10,2)=90P(10, 2) = 90, 대표 2명을 뽑는 방법은 (102)=45\binom{10}{2} = 45입니다.

7.4 파스칼 삼각형과 이항정리

정리 7.11 (파스칼 항등식). (nr)=(n−1r−1)+(n−1r)\dbinom{n}{r} = \dbinom{n-1}{r-1} + \dbinom{n-1}{r} (1≤r≤n−11 \le r \le n - 1).

증명. nn개 중 특정한 원소 xx를 하나 정합니다. rr개를 고르는 방법은 xx를 포함하는 것(나머지 n−1n-1개에서 r−1r-1개: (n−1r−1)\binom{n-1}{r-1})과 포함하지 않는 것(나머지에서 rr개: (n−1r)\binom{n-1}{r})으로 나뉩니다. □

이 항등식으로 이항계수를 삼각형으로 쌓은 것이 파스칼 삼각형입니다.

n과 k를 바꾸면 강조한 칸 C(n, k)와 그 위 두 칸이 바뀝니다. 홀수 칸을 칠하면 시에르핀스키 삼각형 무늬가 보입니다

이 위젯은 JavaScript가 필요합니다

정리 7.12 (이항정리). (x+y)n=∑k=0n(nk)xkyn−k(x + y)^n = \displaystyle\sum_{k=0}^{n} \binom{n}{k} x^k y^{n-k}.

증명. (x+y)n(x + y)^n을 전개하면 nn개의 괄호에서 각각 xx나 yy를 하나씩 골라 곱한 항들의 합입니다. xkyn−kx^k y^{n-k}는 nn개 괄호 중 xx를 고를 kk개를 정하는 방법의 수, 곧 (nk)\binom{n}{k}번 나옵니다. □

따름정리 7.13. ∑k=0n(nk)=2n\displaystyle\sum_{k=0}^n \binom{n}{k} = 2^n, ∑k=0n(−1)k(nk)=0\displaystyle\sum_{k=0}^n (-1)^k \binom{n}{k} = 0 (n≥1n \ge 1).

이항정리에 x=y=1x = y = 1과 x=−1,y=1x = -1, y = 1을 넣으면 됩니다. 첫째 식은 원소 nn개인 집합의 부분집합을 크기별로 센 것이므로 4강의 정리 4.8과 같습니다.

7.5 중복을 허용할 때

순서 있음 순서 없음
중복 없음 P(n,r)=n!(n−r)!P(n, r) = \frac{n!}{(n-r)!} (nr)\binom{n}{r}
중복 있음 nrn^r (n+r−1r)\binom{n + r - 1}{r}

정리 7.14 (별과 막대). nn종류에서 중복을 허용해 rr개를 고르는(순서 없이) 방법은 (n+r−1r)\binom{n + r - 1}{r}가지입니다. 같은 말로, x1+⋯+xn=rx_1 + \cdots + x_n = r의 음이 아닌 정수해는 (n+r−1n−1)\binom{n + r - 1}{n - 1}개입니다.

증명. rr개의 별(★)과 n−1n - 1개의 막대(|)를 한 줄로 늘어놓으면, 막대가 별을 nn개 칸으로 나눕니다. ii번째 칸의 별 수를 xix_i로 읽으면 해와 배열이 일대일로 대응합니다. 배열은 n+r−1n + r - 1개 자리 중 막대 n−1n-1개의 자리를 고르는 것이므로 (n+r−1n−1)\binom{n + r - 1}{n - 1}가지입니다. □

예제 7.15. 세 종류의 사탕에서 10개를 고르는 방법은 (122)=66\binom{12}{2} = 66가지입니다.

정리 7.16 (같은 것이 있는 순열). nn개 가운데 같은 것이 n1,n2,…,nkn_1, n_2, \dots, n_k개씩 있으면, 늘어놓는 방법은 n!n1! n2!⋯nk!\dfrac{n!}{n_1!\, n_2! \cdots n_k!}가지입니다.

예제 7.17. MISSISSIPPI의 글자를 늘어놓는 방법: M 1, I 4, S 4, P 2이므로 11!1! 4! 4! 2!=34650\frac{11!}{1!\,4!\,4!\,2!} = 34650가지입니다.

쓰이는 곳. 확률 계산의 분모·분자, 알고리즘의 경우의 수 어림, 조합 최적화, 이항분포가 이 강의 셈 위에 있습니다. 머신러닝에서 '가능한 모델의 수'를 세어 일반화 상한을 구하는 것도 같은 생각입니다.

7.6 이 장의 요약

  • 먼저 정합니다: 순서가 중요한가? 다시 고를 수 있는가?
  • P(n,r)=(nr)r!P(n,r) = \binom{n}{r} r!. 여러 번 셌으면 나눕니다.
  • 파스칼 항등식, 이항정리, 별과 막대.

문제

7.1 [계산] · 확인 문제

값을 씁니다.

식 값
P(8,3)P(8, 3) [?]
(83)\binom{8}{3} [?]
(105)\binom{10}{5} [?]
(122)\binom{12}{2} [?]
정답
336
56
252
66
풀이

8⋅7⋅6=3368 \cdot 7 \cdot 6 = 336, 336/3!=56336/3! = 56, (105)=252\binom{10}{5} = 252, (122)=66\binom{12}{2} = 66.

7.2 [계산] · 확인 문제

남자 6명, 여자 4명에서 남자 3명과 여자 2명으로 위원회를 만드는 방법은?

정답
120
풀이

곱의 법칙으로 (63)(42)=20⋅6=120\binom{6}{3}\binom{4}{2} = 20 \cdot 6 = 120입니다.

7.3 [계산] · 확인 문제

(x+y)10(x + y)^{10}의 전개에서 x3y7x^3 y^7의 계수는?

정답
120
풀이

이항정리로 (103)=120\binom{10}{3} = 120입니다.

7.4 [계산] · 확인 문제

x1+x2+x3+x4=10x_1 + x_2 + x_3 + x_4 = 10의 음이 아닌 정수해는 몇 개일까요?

힌트 1

별 10개와 막대 3개를 늘어놓습니다.

정답
286
풀이

(133)=286\binom{13}{3} = 286개입니다.

7.5 [계산]

BANANA의 글자를 늘어놓는 방법은 몇 가지일까요?

정답
60
풀이

B 1, A 3, N 2이므로 6!1! 3! 2!=60\frac{6!}{1!\,3!\,2!} = 60가지입니다.

7.6 [계산]

1부터 9까지의 숫자에서 서로 다른 숫자 3개를 골라 만든 세 자리 수 가운데, 숫자가 왼쪽에서 오른쪽으로 커지는 것(예: 147)은 몇 개일까요?

힌트 1

숫자 3개를 고르면 커지는 순서로 늘어놓는 방법은 하나뿐입니다.

정답
84
풀이

고른 3개의 숫자마다 커지는 배열이 정확히 하나이므로 (93)=84\binom{9}{3} = 84개입니다.

7.7 [증명]

(nk)k=n(n−1k−1)\binom{n}{k} k = n \binom{n-1}{k-1}을 “위원회와 위원장”을 두 가지로 세어 증명합니다.

풀이

nn명에서 kk명 위원회를 만들고 그중 위원장 1명을 정하는 방법을 셉니다. 위원회를 먼저 고르면 (nk)\binom{n}{k}, 위원장은 그 kk명 중 하나이므로 (nk)k\binom{n}{k} k입니다. 위원장을 먼저 nn명 중 하나로 고르고 나머지 n−1n - 1명에서 위원 k−1k - 1명을 고르면 n(n−1k−1)n\binom{n-1}{k-1}입니다. 같은 것을 셌으므로 두 값은 같습니다.