Upload
youngman-choe
View
573
Download
2
Embed Size (px)
Citation preview
TAOCPChapter 1.2.9 생성함수
2011년 3월 3일 목요일
생성함수Generating Function
2
< an >= a0, a1, a2, a3, ... 인 수열이 있다고 했을 때,
수열의 각 항목을 매개변수parameter 또는 계수로 하는 함수
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn.
2011년 3월 3일 목요일
생성함수
•수열 에 대한 정보를 얻기 위한 하나의 형태•위처럼 수열 을 하나의 수량으로 나타낸 를 생성함수라 부른다.
Generating Function
3
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn.
< an >= a0, a1, a2, ...
< an >G(z)
2011년 3월 3일 목요일
생성함수
•수열 에 대한 정보를 얻기 위한 하나의 형태•위처럼 수열 을 하나의 수량으로 나타낸 를 생성함수라 부른다.
Generating Function
이 것이 중요!
4
G(z) = a0 + a1z + a2z2 + ... =
�
n≥0
anzn.
< an >= a0, a1, a2, ...
< an >G(z)
2011년 3월 3일 목요일
생성함수
•생성함수를 이용하면 완전히 새로운 범위의 기법들이 가능해짐•드무아브르가 최초로 도입 1차점화식 (1.2.8절 참조)
•스털링이 더 복잡한 점화식으로 확장 미적분
•오일러가 새로운 방식으로 사용하기 시작 분할
•라플라스가 정점을 찍음 ???
Generating Function
52011년 3월 3일 목요일
순서
A.더하기B.자리이동C.곱하기D.z 바꾸기E.미분과 적분F. 알려진 생성함수들G.계수 빼내기
62011년 3월 3일 목요일
더하기 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일 목요일
자리이동 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일 목요일
자리이동 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일 목요일
자리이동 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일 목요일
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일 목요일
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일 목요일
곱하기 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일 목요일
곱하기 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일 목요일
곱하기 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일 목요일
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일 목요일
z 바꾸기 D
17
Im
Rer-r
-ri
ri
단위원의 복소근complex root들을 이용하면매 m번째 항들만 뽑아낼 수 있다.
0θ
sinθ
cosθ
오일러 공식eiθ = cosθ + i sinθ
2011년 3월 3일 목요일
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일 목요일
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일 목요일
미분과 적분 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일 목요일
미분과 적분 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일 목요일
미분과 적분 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일 목요일
알려진 생성함수들 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일 목요일
알려진 생성함수들 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일 목요일
알려진 생성함수들 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일 목요일
베르누이 수
알려진 생성함수들 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일 목요일
계수 빼내기 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일 목요일
끗생성함수는 우리가 수열을 전시하기 위해
수열을 걸어놓는 빨랫줄이다.- 윌프H.S. Wilf (1989)
2011년 3월 3일 목요일