본문 바로가기
카테고리 없음

생성함수와 카탈란 수

by exp0nential 2026. 8. 11.

 

 

 

0. 개요

경우의 수를 셀 때, 합의 법칙과 곱의 법칙을 매번 손으로 따지는 대신 생성함수라는 도구를 이용하면 다항식(혹은 급수)의 곱셈과 덧셈만으로 문제를 훨씬 체계적으로 풀어낼 수 있다.

이 글에서는 먼저 생성함수의 정의와 활용 예제를 살펴본 뒤, 생성함수의 대표적인 응용 사례인 카탈란 수를 기하학적 증명과 생성함수적 증명 두 가지 방법으로 유도하고, 마지막으로 카탈란 수와 일대일 대응되는 다섯 가지 조합론적 상황을 정리한다.


1. 생성함수 (Generating function)

- 정의

수열 $a_n$의 생성함수 $f(x)$를 다음과 같이 정의한다.

$$ f(x)=\sum_{n=0}^{\infty}a_nx^n =a_0+a_1x+a_2x^2+\cdots $$

  • $a_n$ : 특정 조건을 만족하는 경우의 수
  • $x^n$ : 특정 조건(예: 개수, 점수 등)을 나타내는 형식적 기호

경우의 수를 셀 때 쓰는 합의 법칙곱의 법칙은 각각 생성함수의 덧셈곱셈으로 표현할 수 있다. 즉 문제의 조건과 생성함수의 항 사이에 1:1 대응 관계를 만들어 놓으면, 이후로는 다항식 계산만으로 경우의 수를 구할 수 있다.

 

 예제 1. 양궁판을 두 번 쏘는 경우

1점짜리 칸이 3개, 2점짜리 칸이 5개, 3점짜리 칸이 2개인 양궁판에 화살을 연달아 두 번 쏘았을 때 4점을 획득하는 경우의 수를 구해보자. (단, 칸은 전부 다른 것으로 취급)

한 번 쏘았을 때의 생성함수를 $f(x)=3x+5x^2+2x^3$라 하면, 두 번 쏘는 것은 곱의 법칙에 대응되므로

$$ f(x)^2 = (3x+5x^2+2x^3)(3x+5x^2+2x^3) $$

$$ = 9x^2+30x^3+37x^4+20x^5+4x^6 $$

$x^4$의 계수가 4점을 얻는 경우의 수이므로 답 : 37

 

 예제 2. 과일을 20개 뽑는 경우

사과의 개수는 짝수, 바나나의 개수는 5의 배수, 오렌지의 개수는 최대 4개, 배의 개수는 0 또는 1개라는 조건 아래 과일을 총 20개 뽑는 경우의 수를 구해보자. (같은 종류의 과일은 같은 것으로 취급)

각 과일별 생성함수를 곱의 법칙으로 결합하면

$$ (1+x^2+x^4+\cdots) (1+x^5+x^{10}+\cdots) (1+x+x^2+x^3+x^4) (1+x) $$

무한등비급수 합 공식을 이용해 각 항을 정리하면

$$ \frac{1}{1-x^2} \times \frac{1}{1-x^5} \times \frac{1-x^5}{1-x} \times (1+x) $$

$$ = \frac{1}{(1-x)^2} $$

이를 미분하면

$$ \frac{1}{(1-x)^2} = \frac{d}{dx} \left( \frac{1}{1-x} \right) $$

$$ = \frac{d}{dx} (1+x+x^2+\cdots) $$

$$ = 1+2x+3x^2+\cdots = \sum_{n=0}^{\infty}(n+1)x^n $$

따라서 $a_{20}=21$, 답 : 21

- 무한등비급수 합 공식

$$ \sum_{n=0}^{\infty}r^n = \frac{1}{1-r} $$


2. 카탈란 수 (Catalan number)

- 정의 

$C_n$ : $(0,0)$에서 $(n,n)$까지 이동할 때, 이동 경로 위의 모든 점에서 x좌표가 y좌표보다 항상 크거나 같도록 이동하는 경우의 수

- 일반 공식

$$ C_n = \frac{1}{n+1} \binom{2n}{n} $$

- 순환(점화) 공식

$$ C_n = \sum_{k=0}^{n-1} C_kC_{n-1-k} $$

$$ = C_0C_{n-1} + C_1C_{n-2} + \cdots + C_{n-1}C_0 $$

이는 경로가 하나의 기준점을 지나면서 두 부분으로 나누어지고, 각각의 부분을 만드는 경우의 수가 $C_k$와 $C_{n-1-k}$가 된다는 사실에서 나온다.


2-1. 카탈란 수의 기하학적 증명

$(0,0)$에서 $(n,n)$까지 가는 전체 경로 중, $x\ge y$ 조건을 만족하지 않는(즉 한 번이라도 $y>x$가 되는) 경로를 세는 것이 핵심이다.

오른쪽으로 $n$번, 위쪽으로 $n$번 이동해야 하므로 전체 경로의 수는

$$ \binom{2n}{n} $$

이다.

조건을 위배하는 경로는 최초로 $y=x+1$ 직선에 닿는 순간, 그 지점을 기준으로 이후 경로를 $y=x$ 직선에 대해 반사시키면 $(-1,1)$에서 $(n,n)$까지 가는 경로와 정확히 1:1 대응된다. 이를 반사법(Reflection Principle)이라고 한다.

따라서 조건을 위배하는 경로의 수는

$$ \binom{2n}{n+1} $$

이다.

그러므로 조건을 만족하는 경로의 수는

$$ C_n = \binom{2n}{n} - \binom{2n}{n+1} $$

이다.

이를 정리하면

$$ C_n = \frac{1}{n+1} \binom{2n}{n} $$

이 성립하여 카탈란 수의 일반 공식이 증명된다.


2-2. 카탈란 수의 생성함수적 증명

$C_n$의 생성함수를 다음과 같이 두자.

$$ f(x) = \sum_{n=0}^{\infty}C_nx^n $$

순환 공식

$$ C_n = \sum_{k=0}^{n-1} C_kC_{n-1-k} $$

의 양변에 $x^n$을 곱하고 $n=1$부터 무한히 더하면

$$ \sum_{n=1}^{\infty}C_nx^n = \sum_{n=1}^{\infty} \left( \sum_{k=0}^{n-1} C_kC_{n-1-k} \right)x^n $$

왼쪽은 생성함수에서 $C_0$을 제외한 부분이다. $C_0=1$이므로

$$ \sum_{n=1}^{\infty}C_nx^n = f(x)-1 $$

오른쪽에 $x$를 하나 묶어내면

$$ x \sum_{n=1}^{\infty} \left( \sum_{k=0}^{n-1} C_kC_{n-1-k} \right)x^{n-1} $$

$m=n-1$이라고 치환하면

$$ x \sum_{m=0}^{\infty} \left( \sum_{k=0}^{m} C_kC_{m-k} \right)x^m $$

한편 생성함수의 제곱은

$$ f(x)^2 = \left( \sum_{k=0}^{\infty}C_kx^k \right) \left( \sum_{j=0}^{\infty}C_jx^j \right) $$

$x^m$의 계수를 모으면

$$ f(x)^2 = \sum_{m=0}^{\infty} \left( \sum_{k=0}^{m} C_kC_{m-k} \right)x^m $$

따라서

$$ f(x)-1 = xf(x)^2 $$

$$ xf(x)^2-f(x)+1=0 $$

이라는 이차방정식을 얻는다.

근의 공식을 이용하면

$$ f(x) = \frac{1\pm\sqrt{1-4x}}{2x} $$

이다.

생성함수는 $x=0$에서 $C_0=1$이어야 한다. $+$를 선택하면 $x\rightarrow0$일 때 발산하므로 생성함수가 될 수 없다.

반면 $-$를 선택하면

$$ \lim_{x\rightarrow0} \frac{1-\sqrt{1-4x}}{2x} = 1 $$

이므로 조건을 만족한다.

따라서 카탈란 수의 생성함수는

$$ \boxed{ f(x) = \frac{1-\sqrt{1-4x}}{2x} } $$

이다.

이 식을 급수로 전개하면

$$ f(x) = 1+x+2x^2+5x^3+14x^4+\cdots $$

이므로

$$ C_n = \frac{1}{n+1} \binom{2n}{n} $$

임을 다시 확인할 수 있다.


3. $C_n$과 일대일 대응되는 5가지 상황

카탈란 수 $C_n$은 위의 격자 경로 문제 외에도 다음 두가지 조합론적 상황과 정확히 일대일 대응된다.

 

 3-1 이진트리

특정 노드로부터 최대 두 개의 가지가 뻗어나갈 수 있는 그래프를 이진트리라 할 때, $n$개의 내부 노드를 가지는 이진트리의 구조는 카탈란 수와 대응된다.

 

하나의 이진트리를 루트 노드를 기준으로 나누어 보면 왼쪽 부분과 오른쪽 부분이라는 두 개의 작은 이진트리가 만들어진다.

왼쪽 부분에 $k$개의 내부 노드가 있다면 오른쪽 부분에는 $n-1-k$개의 내부 노드가 남는다. 따라서 왼쪽 이진트리를 만드는 경우의 수는 $C_k$, 오른쪽 이진트리를 만드는 경우의 수는 $C_{n-1-k}$이다.

두 부분은 독립적으로 구성되므로 경우의 수를 곱하면

$$ C_kC_{n-1-k} $$

가 된다.

가능한 모든 $k$에 대해 더하면

$$ C_n = \sum_{k=0}^{n-1} C_kC_{n-1-k} $$

가 된다.

이는 앞에서 살펴본 카탈란 수의 순환 공식과 정확히 일치한다. 따라서 $n$개의 내부 노드를 가지는 이진트리의 구조 개수는 $C_n$이다.

 

 3-2 다각형의 삼각분할

$n+2$각형을 서로 교차하지 않는 대각선들로 쪼개어 모든 조각이 삼각형이 되도록 만드는 경우의 수이다.

 

다각형에서 하나의 꼭짓점을 고정하고, 그 꼭짓점에서 다른 꼭짓점으로 연결되는 대각선 하나를 생각해보자. 이 대각선은 다각형을 두 개의 작은 다각형으로 나눈다.

한쪽 부분이 $k+2$각형이라면 다른 쪽 부분은 $(n-k)+2$각형이 된다.

따라서 두 부분을 각각 삼각분할하는 경우의 수는

$$ C_kC_{n-1-k} $$

이다.

가능한 모든 $k$에 대해 더하면

$$ C_n = \sum_{k=0}^{n-1} C_kC_{n-1-k} $$

라는 카탈란 수의 순환 공식이 그대로 나타난다.

따라서 $n+2$각형의 삼각분할 역시 $C_n$개의 경우의 수를 가지며, 카탈란 수와 일대일 대응된다.


4. 생성함수의 심화 이론

생성함수는 단순히 경우의 수를 계산하는 도구에 그치지 않는다. 수열의 점화식을 하나의 함수 방정식으로 바꾸고, 그 함수의 성질을 분석함으로써 수열의 일반항이나 증가 속도까지 알아낼 수 있다.

4-1. 점화식과 생성함수의 관계

예를 들어 수열이

$$ a_n=a_{n-1}+a_{n-2} $$

라는 점화식을 만족한다고 하자.

생성함수

$$ A(x) = a_0+a_1x+a_2x^2+\cdots $$

를 정의하자.

점화식은 $n\ge2$에서 성립하므로 양변에 $x^n$을 곱하고 $n=2$부터 무한히 더하면

$$ \sum_{n=2}^{\infty}a_nx^n = \sum_{n=2}^{\infty}a_{n-1}x^n + \sum_{n=2}^{\infty}a_{n-2}x^n $$

왼쪽은

$$ \sum_{n=2}^{\infty}a_nx^n = A(x)-a_0-a_1x $$

첫 번째 오른쪽 항은

$$ \sum_{n=2}^{\infty}a_{n-1}x^n = x\sum_{n=2}^{\infty}a_{n-1}x^{n-1} $$

지수를 바꾸면

$$ = x\sum_{m=1}^{\infty}a_mx^m $$

따라서

$$ = x(A(x)-a_0) $$

두 번째 오른쪽 항은

$$ \sum_{n=2}^{\infty}a_{n-2}x^n = x^2\sum_{n=2}^{\infty}a_{n-2}x^{n-2} $$

이므로

$$ = x^2A(x) $$

따라서

$$ A(x)-a_0-a_1x = x(A(x)-a_0)+x^2A(x) $$

이를 정리하면

$$ A(x)-xA(x)-x^2A(x) = a_0+(a_1-a_0)x $$

따라서

$$ \boxed{ A(x) = \frac{a_0+(a_1-a_0)x} {1-x-x^2} } $$

특히 피보나치 수열처럼

$$ a_0=0,\qquad a_1=1 $$

이라면

$$ \boxed{ A(x)=\frac{x}{1-x-x^2} } $$

가 된다.

이처럼 생성함수를 이용하면 수열의 재귀적인 점화식을 하나의 대수적인 함수식으로 변환할 수 있다. 이러한 특징 때문에 생성함수는 조합론뿐만 아니라 점화식, 확률론, 알고리즘 분석 등에서도 사용된다.


4-2. 카탈란 수의 점화식과 대수적 생성함수

카탈란 수의 중요한 특징은 점화식이 곱셈 형태로 나타난다는 것이다.

$$ C_n = \sum_{k=0}^{n-1} C_kC_{n-1-k} $$

카탈란 수의 생성함수를

$$ f(x) = \sum_{n=0}^{\infty}C_nx^n $$

이라고 하자.

점화식의 양변에 $x^n$을 곱하고 $n=1$부터 무한히 더하면

$$ \sum_{n=1}^{\infty}C_nx^n = \sum_{n=1}^{\infty} \left( \sum_{k=0}^{n-1} C_kC_{n-1-k} \right)x^n $$

왼쪽은

$$ f(x)-1 $$

이다.

오른쪽에 $x$를 하나 묶어내면

$$ x \sum_{n=1}^{\infty} \left( \sum_{k=0}^{n-1} C_kC_{n-1-k} \right)x^{n-1} $$

$m=n-1$로 치환하면

$$ x \sum_{m=0}^{\infty} \left( \sum_{k=0}^{m} C_kC_{m-k} \right)x^m $$

그런데

$$ f(x)^2 = \left( \sum_{k=0}^{\infty}C_kx^k \right) \left( \sum_{j=0}^{\infty}C_jx^j \right) $$

이므로 $x^m$의 계수는

$$ \sum_{k=0}^{m}C_kC_{m-k} $$

이다. 따라서

$$ f(x)-1=xf(x)^2 $$

이고, 정리하면

$$ xf(x)^2-f(x)+1=0 $$

이라는 이차방정식을 얻는다.

근의 공식을 이용하면

$$ f(x) = \frac{1\pm\sqrt{1-4x}}{2x} $$

이다.

생성함수는 $x=0$에서 $C_0=1$이어야 한다. $+$를 선택하면 $x\rightarrow0$에서 발산하므로 적절하지 않다.

반면 $-$를 선택하면

$$ \lim_{x\rightarrow0} \frac{1-\sqrt{1-4x}}{2x} = 1 $$

이므로 $C_0=1$을 만족한다.

따라서 카탈란 수의 생성함수는

$$ \boxed{ f(x) = \frac{1-\sqrt{1-4x}}{2x} } $$

이다.

이처럼 카탈란 수의 복잡한 조합론적 구조는 생성함수를 통해 하나의 간단한 이차방정식으로 압축된다.

 

21기 Exponential 전무겸

댓글