110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수
TRANSCRIPT
![Page 1: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/1.jpg)
TAOCPChapter 1.2.9 생성함수
2011년 3월 3일 목요일
![Page 2: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/2.jpg)
생성함수Generating Function
2
< an >= a0, a1, a2, a3, ... 인 수열이 있다고 했을 때,
수열의 각 항목을 매개변수parameter 또는 계수로 하는 함수
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn.
2011년 3월 3일 목요일
![Page 3: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/3.jpg)
생성함수
•수열 에 대한 정보를 얻기 위한 하나의 형태•위처럼 수열 을 하나의 수량으로 나타낸 를 생성함수라 부른다.
Generating Function
3
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn.
< an >= a0, a1, a2, ...
< an >G(z)
2011년 3월 3일 목요일
![Page 4: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/4.jpg)
생성함수
•수열 에 대한 정보를 얻기 위한 하나의 형태•위처럼 수열 을 하나의 수량으로 나타낸 를 생성함수라 부른다.
Generating Function
이 것이 중요!
4
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn.
< an >= a0, a1, a2, ...
< an >G(z)
2011년 3월 3일 목요일
![Page 5: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/5.jpg)
생성함수
•생성함수를 이용하면 완전히 새로운 범위의 기법들이 가능해짐•드무아브르가 최초로 도입 1차점화식 (1.2.8절 참조)
•스털링이 더 복잡한 점화식으로 확장 미적분
•오일러가 새로운 방식으로 사용하기 시작 분할
•라플라스가 정점을 찍음 ???
Generating Function
52011년 3월 3일 목요일
![Page 6: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/6.jpg)
순서
A.더하기B.자리이동C.곱하기D.z 바꾸기E.미분과 적분F. 알려진 생성함수들G.계수 빼내기
62011년 3월 3일 목요일
![Page 7: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/7.jpg)
더하기 A
7
= + + + ...+ + + + ...
= ( + ) + ( + ) + ( + ) + ...
G(z) =�
n≥0
anzn = a0 + a1z + a2z
2 + ...
H(z) =�
n≥0
bnzn = b0 + b1z + b2z
2 + ...
αG(z) + βH(z) = α�
n≥0
anzn + β
�
n≥0
bnzn
=�
n≥0
(αan + βbn)zn.
2011년 3월 3일 목요일
![Page 8: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/8.jpg)
자리이동 Bn≺0일 때, an=0이라고 한다면
의 생성함수
오른쪽으로
8
G(z) = a0 + a1z + a2z2 + ...
zmG(z) = a0zm + a1z
m+1 + a2zm+2 + ...
= a0−m + a1−mz + a2−mz2 + ...
=�
n≥m
an−mzn.
= 0·z0 + 0·z1 + 0·z2 + ...+ a0zm + a1z
m+1 + ...
=�
n≥0
an−mzn = zm�
n≥0
anzn.
< an−m >= 0, ..., 0� �� �, a0, a1, a2, ...m
2011년 3월 3일 목요일
![Page 9: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/9.jpg)
자리이동 B왼쪽으로
의 생성함수
9
z−m(G(z)−�
n<m
anzn) = z−m
�
n≥m
anzn
= z−m(amzm + am+1zm+1 + ...)
= a0+m + a1+mz + a2+mz2 + ...
=�
n≥0
an+mzn.
< an+m >= am, am+1, am+2, ...
2011년 3월 3일 목요일
![Page 10: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/10.jpg)
자리이동 B
10
the simplest case
중요
G(z) = 1, 1, 1, ...
zG(z) = 0, 1, 1, ...
(1− z)G(z) = 1
G(z) =1
1− z= 1 + z + z2 + ...
2011년 3월 3일 목요일
![Page 11: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/11.jpg)
A+B피보나치 수열 풀기
• 를 에 대한 생성함수라 하자.
‣ 는 에 대한 생성함수
‣ 는 에 대한 생성함수
‣ 는 에 대한 생성함수
• 일 때, 이므로,
=1
...이 이후는 1.2.8절 p116 풀이 참조11
(1− z − z2)G(z) = F0 + (F1 − F0)z + (F2 − F1 − F0)z2
+ (F3 − F2 − F1)z3 + ...
= z
G(z) =z
1− z − z2.
G(z) < Fn >
zG(z) < Fn−1 >
z2G(z)
(1− z − z2)G(z) < Fn − Fn−1 − Fn−2 >
n > 2 Fn − Fn−1 − Fn−2 = 0
< Fn−2 >
2011년 3월 3일 목요일
![Page 12: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/12.jpg)
A+B응용 (1차 점화 수열)
인 수열의 생성함수 는1차 점화 수열
...형태가 동일
12
G(z)
G(z) =X
1− c1z − ...− cmzm.
an = c1an − 1 + ...+ cman−m
G(z) =z
1− z − z2
2011년 3월 3일 목요일
![Page 13: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/13.jpg)
곱하기 C
13
자리이동에서 나왔던 도 곱하기의 특별한 사례
두 개
G(z) = a0 + a1z + a2z2 + ...
H(z) = b0 + b1z + b2z2 + ...
G(z)H(z) = (a0 + a1z + a2z2 + ...)(b0 + b1z + b2z
2 + ...)
= (a0b0) + (a0b1 + a1b0)z + (a0b2 + a1b1 + a2b0)z2 + ...
= c0 + c1z + c2z2 + ...
cn =n�
k=0
akbn−k
zmG(z)
2011년 3월 3일 목요일
![Page 14: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/14.jpg)
곱하기 C
14
특별한 사례 하나 더
에서 일 때,
원래 수열의 합들에 대한 생성함수
두 개
G(z) = a0 + a1z + a2z2 + ...
H(z) = b0 + b1z + b2z2 + ... bn = 1
= 1 + z + z2 + ...
=1
1− z
G(z)H(z) =1
1− zG(z)
= a0 + (a0 + a1)z + (a0 + a1 + a2)z2 + ...
2011년 3월 3일 목요일
![Page 15: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/15.jpg)
곱하기 C
15
세 개 이상
from
F (z)G(z)H(z) = d0, d1, d2, ...
dn =�
i,j,k≥0i+j+k=n
aibjck.
�
j≥0
�
k≥0
ajkzk =
�
n≥0
zn�
k0,k1,...≥0k0+k1+...=n
a0k0a1k1 . . .
F (z)G(z), cn =n�
k=0
akbn−k
2011년 3월 3일 목요일
![Page 16: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/16.jpg)
z 바꾸기 D
16
G(z) = a0 + a1z + a2z2 + a3z
3 + ...
G(−z) = a0 − a1z + a2z2 − a3z
3 + ...
G(z) +G(−z) = 2a0 + 2a2z2 + 2a4z
4 + ...1
2(G(z) + G(−z)) = a0 + a2z
2 + a4z4 + . . .
G(z) = a0 + a1z + a2z2 + a3z
3 + ...
G(−z) = a0 − a1z + a2z2 − a3z
3 + ...
G(z)−G(−z) = 2a1z + 2a3z3 + 2a5z
5 + ...1
2(G(z) − G(−z)) = a1z + a3z
3 + a5z5 + . . .
짝수항 추출하기
홀수항 추출하기
2011년 3월 3일 목요일
![Page 17: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/17.jpg)
z 바꾸기 D
17
Im
Rer-r
-ri
ri
단위원의 복소근complex root들을 이용하면매 m번째 항들만 뽑아낼 수 있다.
0θ
sinθ
cosθ
오일러 공식eiθ = cosθ + i sinθ
2011년 3월 3일 목요일
![Page 18: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/18.jpg)
z 바꾸기 D
18
Im
Rer-r
-ri
ri
단위원의 복소근complex root들을 이용하면매 m번째 항들만 뽑아낼 수 있다.
02π/m
sin(2π/m)
cos(2π/m)
e2π/im = cos(2π/m) + i sin(2π/m) =ω
�
n mod m=r
anzn =
1
m
�
0≤k<m
ω−krG(ωkz)
0 ≤ r < m.
증명은 연습문제 14 참고.
위와 같을 때 아래가 성립
2011년 3월 3일 목요일
![Page 19: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/19.jpg)
z 바꾸기 D
19
Im
Re
e2π/im = cos(2π/m) + i sin(2π/m) =ω
예를 들어 m=3이면, ω = −1
2+
√3
2i
그리고 r=1이면,�
n mod 3=1
anzn =
1
3
�
0≤k<3
ω−kG(ωkz)
i
-1
-i
0120°
sin(2π/3)
=√3/2
cos(2π/3)
= 1/2
1
a1z + a4z4 + a7z
7 + . . .
=1
3(G(z) + ω−1G(ωz) + ω−2G(ω2z)).
2011년 3월 3일 목요일
![Page 20: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/20.jpg)
미분과 적분 E
20
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn
G�(z) = a1 + 2a2z + 3a3z2 + ... =
�
k≥0
(k + 1)ak+1zk.
따라서, zG�(z) =�
n≥0
nanzn. < nan > 의 생성함수
미분
2011년 3월 3일 목요일
![Page 21: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/21.jpg)
미분과 적분 E
21
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn
적분
� z
0G(t)dt = a0z +
1
2a1z
2 +1
3a2z
3 + . . . =�
k≥1
1
kak−1z
k.
아까 중요했던 공식이 다시 등장
G(z) =1
1− z= 1 + z + z2 + ...
G�(z) =1
(1− z)2= 1 + 2z + 3z2 + ... =
�
k≥0
(k + 1)zk.
� z
0G(t)dt = ln
1
1− z= z +
1
2z2 +
1
3z3... =
�
k≥1
1
kzk.
2011년 3월 3일 목요일
![Page 22: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/22.jpg)
미분과 적분 E
22
적분� z
0G(t)dt = ln
1
1− z= z +
1
2z2 +
1
3z3... =
�
k≥1
1
kzk.
또 아까 나왔던 공식에 위 공식을 결합하면,
G(z)H(z) =1
1− zG(z) = a0 + (a0 + a1)z + (a0 + a1 + a2)z
2 + ...
1
1− zln
1
1− z= 0 + (0 + 1)z + (0 + 1 +
1
2)z2 + (0 + 1 +
1
2+
1
3)z3 + ...
= z +3
2z2 +
11
6z3 + ... =
�
k≥0
Hkzk.
조화수열에 대한 생성함수가 나온다.2011년 3월 3일 목요일
![Page 23: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/23.jpg)
알려진 생성함수들 F
23
이항정리
(1 + z)r = 1 + rz +r(r − 1)
2z2 + ... =
�
k≥0
�rk
�zk.
r 이 음의 정수일 때,
1
(1− z)n+1=
�
k≥0
�−n− 1
k
�(−z)k =
�
k≥0
�n+ kn
�zk.
xr = 1 + rz +r(r − 2t− 1)
2z2 + · · · =
�
k≥0
�r − kt
k
�r
r − ktzk.
다음과 같은 일반화도 있다. (연습문제 1.2.6-25 참조)
2011년 3월 3일 목요일
![Page 24: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/24.jpg)
알려진 생성함수들 F
24
exp z = ez = 1 + z +1
2!z2 + · · · =
�
k≥0
1
k!zk.
지수급수exponential series
일반화하면 스털링 수가 관련된 다음과 같은 공식이 된다.
(ez − 1)n = zn +1
n+ 1
�n+ 1n
�zn+1 + · · · = n!
�
k
�kn
�zk
k!.
2011년 3월 3일 목요일
![Page 25: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/25.jpg)
알려진 생성함수들 F
25
로그급수logarithm series
ln(1 + z) = z − 1
2z2 +
1
3z3 − · · · =
�
k≥1
(−1)k+1
kzk,
1
(1− z)m+1ln(
1
1− z) =
�
k≥1
(Hm+k −Hm)
�m+ k
k
�zk.
지수급수와 마찬가지로 스털링 수를 통해서좀 더 일반적인 방정식이 나온다.
(ln1
1− z)n = zn +
1
n+ 1
�n+ 1n
�zn+1 + · · · = n!
�
k
�kn
�zk
k!.
2011년 3월 3일 목요일
![Page 26: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/26.jpg)
베르누이 수
알려진 생성함수들 F
26
기타
z(z + 1) . . . (z + n− 1) =�
k
�kn
�zk,
zn
(1− z)(1− 2z) . . . (1− nz)=
�
k
�kn
�zk,
z
ez − 1= 1− 1
2z +
1
12z2 + · · · =
�
k≥0
Bkzk
k!.
xr = 1 + rz +r(r + 2t)
2z2 + · · · =
�
k≥0
r(r + kt)k−1
k!zk.
2011년 3월 3일 목요일
![Page 27: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/27.jpg)
계수 빼내기 G
27
G(z) zn의 항의 계수가 라고 할 때[zn]G(z)
예를 들어G(z) = a0 + a1z + a2z
2 + · · · [zn]G(z) = an의
[zn]G(z) =1
2πi
�
|z|=r
G(z)dz
zn+1
2011년 3월 3일 목요일
![Page 28: 110218 [아꿈사발표자료] taocp#1 1.2.9. 생성함수](https://reader034.vdocuments.site/reader034/viewer/2022042615/55c0e58fbb61eb1a378b4568/html5/thumbnails/28.jpg)
끗생성함수는 우리가 수열을 전시하기 위해
수열을 걸어놓는 빨랫줄이다.- 윌프H.S. Wilf (1989)
2011년 3월 3일 목요일