[조합론] 6. 점화식(3: 생성함수)
수열 a0,a1,a2,⋯에 대하여 멱급수f(x)=∞∑i=0aixi=a0+a1x+a2x2+⋯를 이 수열의 생성함수(generating function)라고 한다. 생성함수는 함수를 관찰해서 수열의 성질을 파악할 수 있는 중요한 역할을 하고, 생성함수를 이용하여 수열의 일반항 및 점화식을 구할 수 있다.
참고: 여기서 가장 중요한 것은 수열 an이고, xn은 계수들을 구분하는 기호에 불과하다.1+x+x2+x3+⋯=11−x는 생성함수에서 가장 많이 사용되는 등식이고, 이 생성함수로부터 상수수열 an=1을 구할 수 있다. 또한 위의 급수를 제곱한 급수(1+x+x2+x3+⋯)n=1(1−x)n에서 xr의 계수는 nHr이다. 그 이유는 다음과 같다.(1+x)n=1+(n1)x+(n2)x2+⋯+(nr)xr+⋯+(nn)xn(1−xm)n=1−(n1)xm+(m2)x2m+⋯+(−1)r(nr)xrm+⋯+(−1)n(nn)xnm1(1−x)n=1+(1+n−11)x+(2+n−12)x2+⋯+(r+n−1r)xr+⋯=1+nH1x+nH2x2+⋯+nHrxr+⋯
아보카도 1개, 레몬 2개, 오렌지 3개가 있다. 아보카도를 A, 레몬을 L, 오렌지를 O로 표시하면, ALO는 아보카도, 레몬, 오렌지를 각각 1개씩 선택한 것을 의미하고, ALLOO=AL2O2는 아보카도 1개, 레몬 2개, 오렌지 2개를 선택한 것을 의미한다. 순서를 고려할 필요가 없으므로 교환법칙이 성립한다. 두 사람의 선택이 각각 ALO, AL2O2이면, ALO+AL2O2로 나타낼 수 있다. 아래의 식(1+A)(1+O+O2)(1+P+P2+P3)을 다항식이라고 생각하고 전개하면 각각의 계수들은 과일을 고르는 방법의 수로 나타내어지고 전개식에서 지수의 합이 n인 항들은 과일 n개를 고르는 방법의 수이다.
예를들어 과일을 3개 고른다고 하면 AL2,ALO,AO2,L2O,LO2,O3으로 6가지이고 아래의 다항식에서 x3의 계수는 6이다.(1+x)(1+x+x2)(1+x+x2+x3)=1+3x+5x2+6x3+5x4+3x5+x6이 다항식의 첫번째 인수에서 x는 아보카도를, 두번째 인수에서 x는 레몬을, 세번째 인수에서 x는 오렌지를 의미한다. 따라서 위의 다항식은 과일 n(0≤n≤6)개를 선택하는 방법에 대한 생성함수이다.
예: 7개의 통에 각각 같은 종류의 장난감이 있다. 통에서 중복을 허용해서 뽑되, 각 통에서 2개 이상 6개 이하가 뽑히도록 25개를 선택하는 경우의 수는?
풀이: 장난감 선택에 대한 생성함수는 (x2+x3+x4+x5+x6)이므로 이 문제에 대한 생성함수는(x2+x3+x4+x5+x6)7이고, x25의 계수가 이 문제의 답이다.(x2+x3+x4+x5+x6)7=x14(1+x+x2+x3+x4)7이므로 문제의 답은 (1+x+x2+x3+x4)7에서 x11의 계수가 된다. 이때(1+x+x2+x3+x4)7=(1−x51−x)7=(1−x5)7(1−x)7이고(1−x5)=1−(71)x5+(72)x10−(73)x15+⋯1(1−x)7=(1+x+x2+x3+⋯)7=1+7H1x+7H2x2+7H3x3+⋯이므로 이 다항식에서의 x11의 계수는1⋅7H11+(−1)(71)7H6+(72)7H1=(176)+(−1)(71)(126)+(72)(76)=6055이고 이것이 문제의 답이다.
예: 25개의 사탕을 7명의 어린이에게 분배하는데 첫번째 어린이는 최대 10개만 받을 수 있고, 나머지 어린이에게는 제한이 없다고 하면 나누어 주는 경우의 수는?
풀이: 이 문제에 대한 생성함수는(1+x+x2+⋯+x10)(1+x+x2+⋯)6=1−x111−x1(1−x)6=1−x11(1−x)7이고 이 생성함수의 x25의 계수가 이 문제의 답이다.1(1−x)7=(1+x+x2+⋯)7=1+7H1x+7H2+⋯+7Hr+⋯이므로7H25⋅1+7H14(−1)=(3125)−(2014)=697521이 이 문제의 답이다.
정리: 수열 an,bn의 생성함수를 각각 f(x),g(x)라고 하면 다음 성질들이 성립한다.
(1) 수열 cn=an±bn의 생성함수는 f(x)±g(x)이다.
(2) 수열 cn=an−k의 생성함수는 xkf(x)이다.
(3) 수열 cn=n∑k=0akbn−k의 생성함수는 f(x)g(x)이다.
(4) 수열 cn=n∑k=0ak의 생성함수는 f(x)1−x이다.
(5) 수열 cn=nan의 생성함수는 xf′(x)이다.
증명: f(x),g(x)는 각각 수열 an,bn의 생성함수이므로f(x)=∞∑n=0anxn=a0+a1x+a2x2+⋯g(x)=∞∑n=0bnxn=b0+b1x+b2x2+⋯이다.
(1):∞∑n=0cnxn=∞∑n=0(an±bn)xn=f(x)±g(x)이므로 수열 cn=an±bn의 생성함수는 f(x)±g(x)이다.
(2):∞∑n=0cnxn=∞∑n=0anxn+k=xkf(x)이므로 수열 cn=an−k의 생성함수는 xkf(x)이다.
(3):f(x)g(x)=(a0+a1x+a2x2+⋯)(b0+b1x+b2x2+⋯)=a0b0+(a0b1+a1b0)x+(a0b2+a1b1+a2b0)x2+⋯=∞∑n=0cnxn이므로 수열 cn=n∑k=0akbn−k의 생성함수는 f(x)g(x)이다.
(4):f(x)1−x=(a0+a1x+a2x2+⋯)(1+x+x2+⋯)=a0+(a0+a1)x+(a0+a1+a2)x2+⋯=∞∑n=0cnxn이므로 수열 cn=n∑k=0ak의 생성함수는 f(x)1−x이다.
(5):xf′(x)=x(a1+2a2x+3a3x3+⋯)=a1x+2a2x2+3a3x3+⋯=∞∑n=0nanxn이므로 수열 cn=nan의 생성함수는 xf′(x)이다.
생성함수를 이용하여 점화식을 구할 수 있다.
예: 점화식 an=5an−1−6an−2,a0=1,a1=−2의 일반항은?
풀이: 수열 an의 생성함수를 f(x)=∞∑n=0anxn이라 하자. 그러면f(x)=a0+a1x+a2x2+a3x3+⋯=a0+a1x+(5a1−6a0)x2+(5a2−6a1)x3+⋯=a0+a1x+5x(a1x+a2x2+⋯)−6x2(a0+a1x+a2x2+⋯)=a0+(a1−5a0)x+5xf(x)−6x2f(x)=1−7x+(5x−6x2)f(x)이므로 (6x2−5x+1)f(x)=1−7x이고f(x)=1−7x6x2−5x+1=51−2x−41−3x=5∞∑n=02nxn−4∞∑n=03nxn=∞∑n=0(5⋅2n−4⋅3n)xn이므로 따라서 an=5⋅2n−4⋅3n(n≥0)이다.
예: 점화식 an=8an−1+10n−1,a0=1의 일반항은?
풀이: 수열 an의 생성함수를 f(x)=∞∑n=0anxn이라 하자. 그러면f(x)=a0+a1x+a2x2+a3x3+⋯=a0+∞∑n=1anxn=a0+∞∑n=1(8an−1+10n−1)=1+8xf(x)+x1−10x이고g(x)=1−9x(1−8x)(1−10x)=12(1−8x)+12(1−10x)=12∞∑n=08nxn+12∞∑n=010nxn=12∞∑n=0(8n+10n)xn이므로 따라서 an=8n+10n2이다.
예: 부정방정식 x1+2x2+3x3=n의 음이 아닌 정수해의 개수 an은?
풀이: 각 변수의 선택을 나타내는 생성함수는1+x+x2+⋯=11−x(x1)1+x2+x4+⋯=11−x2(2x2)1+x3+x6+⋯=11−x3(3x3)이므로 an의 생성함수를 f(x)=∞∑n=0anxn라고 하면f(x)=(1+x+x2+⋯)(1+x2+x4+⋯)(1+x3+x6+⋯)=11−x11−x211−x3=1(1−x)311+x11+x+x2=1(1−x)311+x11−ωx11−ω2x=A1−x+B(1−x)2+C(1−x)3+D1+x+E1−ωx+F1−ω2x이고 여기서 ω=e2π3i이다. 위 식을 만족하는 A,B,C,D,E,F를 구하면A=1772,B=14,C=16,D=18,E=19,F=19이므로f(x)=∞∑n=0(1772+142Hn+163Hn+18(−1)n+19ωn+19ω2n)xn=∞∑n=0(1772+n+14+(n+1)(n+2)6+18(−1)n+19δn)이고δn=ωn+ω2n={2,(n≡0(mod3))−1,(n≢0(mod3))이므로 따라서an=1772+n+14+(n+1)(n+2)6+18(−1)n+19δn이다.(이 문제는 자연수 n을 3 이하의 자연수의 합으로 나타내는 방법의 수를 구하는 문제와 같다.)
예: 자연수 n을 분할하는 경우의 수를 p(n)이라고 할 때, p(n)의 생성함수는?
풀이: 자연수의 분할은 1이 몇개 있는가, 2가 몇개 있는가, ... 등으로 구별되므로 그 생성함수는Pn(x)=(1+x+x2+⋯)(1+x2+x4+⋯)(1+x3+x6+⋯)⋯(1+xn+x2n+⋯)⋯=11−x11−x211−x3⋯11−xn⋯=∞∏n=111−xi이다.
(p(n)은 위 생성함수에서 xn의 계수이다.)
예: 자연수 n을 서로 다른 자연수들의 합으로 나타내는 경우의 수를 an이라고 할 때, an의 생성함수는?
풀이: 한번 사용한 자연수는 다시 사용할 수 없으므로 모든 자연수는 사용되거나 사용되지 않거나 이 두가지 경우만이 가능하다. 그러므로 생성함수는f(x)=(1+x)(1+x2)(1+x3)⋯(1+xn)⋯=∞∏n=1(1+xn)이다.
참고자료:
조합 및 그래프이론, 김정진, 교우사
'확률및통계 > 조합론' 카테고리의 다른 글
[조합론] 8. 분할, 스털링 수 (1) | 2019.03.06 |
---|---|
[조합론] 7. 점화식(4: 지수생성함수, 카탈란 수) (1) | 2019.03.05 |
[조합론] 5. 점화식(2: 선형점화식) (0) | 2019.03.03 |
[조합론] 4. 점화식(1: 알고리즘, 점화식들의 예) (0) | 2019.03.02 |
[조합론] 3. 경우의 수 세기(2: 중복순열, 중복조합, 이항계수의 성질) (0) | 2019.03.01 |