본문으로 건너뛰기
김신건의 로그

조합론 기초 (Combinatorics)

· 수정 · 📖 약 4분 · 1,333자/단어 #discrete-math #combinatorics #counting
Combinatorics, 조합론, 계수, 순열, 조합, 이항계수, 포함배제, Counting, counting, 카운팅, 세기

정의

조합론 (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가지:

  1. 순서 중요한가? (yes -> 순열, no -> 조합)
  2. 중복 허용?
  3. 완전히 채우는가 (모두 사용) 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}$:…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기