조합론 기초 (Combinatorics)
정의
조합론 (Combinatorics) 은 유한 집합의 원소를 세거나 배열하는 방법을 다루는 수학 분야입니다. “경우의 수 계산” 과 “구조의 존재/구성” 이 핵심 주제.
컴퓨터 과학에서 알고리즘 복잡도 분석, 확률 계산, 데이터 구조 분석에 필수.
두 기본 원리
합의 법칙 (Sum Rule)
서로소인 사건 와 가 각각 가지 방법으로 발생 가능하다면, 또는 는 가지.
예: 도서관에 소설 20권, 시집 10권. 한 권 선택하는 방법 = .
곱의 법칙 (Product Rule)
절차가 두 단계로 이루어지고 첫 단계 가지, 둘째 단계 가지라면, 전체 방법 수 = .
예: 4자리 PIN (0-9 각 자리). .
순열 (Permutation)
순서 있는 배열.
개에서 개 뽑아 배열
예: 5명 중 3명을 정렬해 세우기 = .
개 전체 순열
예: 5권의 책을 책장에 배열 = .
원순열 (Circular Permutation)
개를 원형 배열 = (회전으로 같은 것 제외).
조합 (Combination)
순서 없는 선택.
이항계수
예: 10명 중 3명 선택 (순서 무관) = .
이항 정리
예:
파스칼 삼각형
시각화:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
각 원소는 위의 두 원소의 합.
시각화: 순열 vs 조합
에서 2개 선택:
flowchart TB
subgraph "순열 P(3,2) = 6"
AB1["AB"]
BA1["BA"]
AC1["AC"]
CA1["CA"]
BC1["BC"]
CB1["CB"]
end
subgraph "조합 C(3,2) = 3"
AB2["{A,B}"]
AC2["{A,C}"]
BC2["{B,C}"]
end
순열 6개 각각이 2! 씩 그룹지어 조합 3개로 축약. .
중복 순열/조합
중복 순열
중복 허용 순서 있는 배열. .
예: 각 자리에 0-9 넣는 4자리 PIN = .
중복 조합
중복 허용 순서 없는 선택. .
예: 5가지 맛 아이스크림에서 3 스쿱 (중복 허용) 선택 = .
별과 막대 (Stars and Bars)
( 정수) 의 해의 수 = .
시각화: 개의 별 사이에 개의 막대를 배치.
★★|★|★★★ (3개 그룹으로 나눔)
n=6, k=3, 배치 = C(6+2, 2) = 28
포함배제 원리 (Inclusion-Exclusion)
두 집합:
세 집합:
일반:
시각화 (3 집합 벤 다이어그램)
A
┌──────┐
│ a │
┌───┼──────┼───┐
│ b │ ab │ c │ B
│ │ abc │ │
│ │ ac bc│ │
└───┼──────┼───┘
│ ?? │ C
└──────┘
교차 영역들의 중복 카운트를 부호 교대로 보정.
예: 1부터 100까지 정수 중 2 또는 3 또는 5의 배수 개수.
.
계수 방법 카테고리
핵심 질문 3가지:
- 순서 중요한가? (yes -> 순열, no -> 조합)
- 중복 허용?
- 완전히 채우는가 (모두 사용) or 일부만?
| 상황 | 공식 |
|---|---|
| 개 뽑아 배열 (중복 X) | |
| 개 뽑아 배열 (중복 O) | |
| 개 선택 (중복 X) | |
| 개 선택 (중복 O) | |
| 원 순열 |
비둘기집 원리 (Pigeonhole Principle)
마리의 비둘기를 개의 집에 넣으면, 어떤 집에는 최소 2 마리.
일반화: 개 원소를 개 상자에 넣으면 어떤 상자에는 최소 개.
응용 예
- 파일 시스템 해시 충돌: 1000 파일을 100 버킷에 -> 어떤 버킷은 최소 10 파일.
- 생일 문제: 366 명 있으면 반드시 생일 같은 사람 존재.
- 정보이론: 압축의 이론 한계.
이항 항등식 (Binomial Identities)
핵심 항등식 (모두 조합적 의미가 있음):
컴퓨터 과학 응용
알고리즘
- 정렬: 비교 정렬의 최소 비교 횟수 는 판정 트리 (decision tree) 조합론.
- DP: 상태 수 = 경우의 수 계산.
- NP-완전: 조합 최적화 대부분.
해시
- 버킷 분배: 비둘기집 -> 충돌 불가피.
- 해시 충돌 확률: 생일 역설 응용.
정보이론
- 엔트로피: 이산 확률 분포의 정보량.
- Kraft 부등식: 접두어 없는 코드의 조건.
그래프 알고리즘
- 경로 수: 인접 행렬 거듭제곱.
- 매칭 수: permanent (계산 hard).
함정
1. 순서와 중복
문제를 잘 읽어야. “선택” 이라도 순서가 중요한지, 중복 가능한지 별도 판단.
2. 케이스 분석 겹침
집합을 나누어 세면 서로소 여야 합의 법칙. 겹치면 포함배제로 보정.
3. 이항 계수 오버플로
. long long 도 넘음. mod 로 계산 필요.
4. 은 1
관용. 조합 공식에서 자연스러움. .
관련 위키
이 글의 용어 (8개)
- 그래프 이론 기초 (Graph Theory)discrete-math
- 정의 그래프 (Graph) $G = (V, E)$ 는 정점 (vertex) 의 집합 $V$ 와 간선 (edge) 의 집합 $E$ 로 이루어진 이산 구조입니다. 간선은 정점의 쌍 …
- 이산수학 (Discrete Mathematics)discrete-math
- 정의 이산수학 (Discrete Mathematics) 은 이산 (discrete, 셀 수 있는) 대상을 다루는 수학의 분야입니다. 연속 (continuous) 대상 을 다루는 …
- 조합론 (Combinatorics)algorithm
- 정의 조합론 (Combinatorics) 은 유한 집합의 원소를 세는 수학 분야. PS 에서는 주로 순열 (Permutation), 조합 (Combination), 이항계수 (B…
- 집합, 관계, 함수 (Sets, Relations, Functions)discrete-math
- 정의 - 집합 (set): 서로 다른 원소들의 모음 - 관계 (relation): 두 집합 사이의 원소들의 대응 규칙 - 함수 (function): 정의역의 각 원소를 치역의 유…
- 포함-배제 원리 (Inclusion-Exclusion Principle)algorithm
- 정의 포함-배제 원리 (Inclusion-Exclusion Principle, PIE) 는 여러 집합의 합집합 크기를 교집합 항으로 표현하는 조합론 공식. 가장 간단한 형태: N…
- Catalan Number: C_nalgorithm
- 정의 Catalan number 는 조합론에서 자주 등장하는 수열. 닫힌 형식(closed form): $$ Cn = \frac{1}{n+1} \binom{2n}{n} = \fr…
- Generating Functionalgorithm
- 정의 Generating Function (생성 함수) 은 수열 를 형식 멱급수 (formal power series) 으로 인코딩한 것. 수열의 산수 를 다항식 / 멱급수의 대…
- Pascal Triangle: 이항계수algorithm
- 정의 Pascal Triangle 은 각 원소가 위 두 원소의 합인 삼각형. 행 n, 열 k 의 원소가 이항계수 $\binom{n}{k}$. 이항계수 $\binom{n}{k}$:…
💬 댓글