모든 Integer n에 대해 n≥n0이고 n0≥0인 {an}의 Recurrence relation(점화식)은 an을 Sequence의 이전 Term(a0,a1,…,an−1)에 대한 Express로 표현하는 Equation이다.
Sequence가 Recurrence relation을 만족한다면 Sequence를 Solution of a recurrence relation(재귀 관계의 해)라고 부른다.
팁
Example
Sequence {an}가 an=an−1−an−2(n=2,3,4,…)를 만족할 때 a0=3,a1=5일 때 a2,a3의 Value
Solution a2=a1−a0=5−3=2,a3=a2−a1=2−5=−3으로 구할 수 있다.
팁
Example
an=2an−1−an−2가 n=2,3,4,…에서 Recurrence relation 성립 여부
Solution
Nonnegative integer n에 대해 an=3n이라고 가정하면 n≥2일 때 2an−1−an−2=2(3(n−1))−3(n−2)=3n=an이 성립한다.
Nonnegative integer n에 대해 an=2n이라고 가정하면 n≥2일 때 2an−1−an−2=2(2(n−1))−2(n−2)=2n−2n−2=an으로 성립하지 않는다.
Nonnegative integer n에 대해 an=5라고 가정하면 n≥2일 때 2an−1−an−2=2(5)−5=5=an으로 성립한다.
Sequence의Initial condition은 Recurrence relation이 적용되기 이전의 Term들을 지정한다.
Initial condition은 Sequence를 고유하게 결정한다.
Compound Interest
연 11%의 복리이자를 제공하는 은행의 저축 계좌에 10000원을 예치할 경우 30년 후 계좌 금액
Solution n년 후 계좌 금액을 Pn으로 정의할 경우 n년 후 계좌 금액은 n−1년 후 계좌 금액에 n년 차 이자를 더한 것이므로 {Pn},Pn=Pn−1+0.11Pn−1=1.11Pn−1,P0=10000이다.
Initial condition을 대입하여 Pn=(1.11)n⋅10000임을 알 수 있다.
Recurrence relation과 Induction hypothesis에 따라 Pn+1=(1.11)Pn=(1.11)n+1⋅10000이다.
따라서 30년 후 계좌 금액은 P30=(1.11)30⋅10000=228922.97로 구할 수 있다.
팁
Example
Rabbits and the Fibonacci Numbers
한 쌍의 어린 토끼(수컷, 암컷)가 섬에 놓이고 토끼 한 쌍은 2개월이 지나면 각 토끼 쌍은 매달 새로운 쌍을 생산할 때 n개월 후 섬에 있는 토끼 쌍의 수
Solution n개월 후 토끼 쌍의 수를 fn으로 나타낼 때 fn은 Fibonacci sequence의 Term임을 증명할 수 있다.
첫 달이 끝날 때 토끼 쌍의 수 f1=1, 두 번째 달이 끝날 때 역시 f2=1이다.
두 달이 지난 토끼 쌍만 번식하므로 fn=fn−1+fn−2이다.
즉, n개월 후 섬에 있는 토끼 쌍의 수는 n번째 Fibonacci number가 된다.
팁
Example
The Tower of Hanoi
3개의 기둥에 다양한 크기의 원판으로 구성되어 있으며 첫 번째 기둥에 내림차순으로 원판들이 쌓여 있을 때 원판은 한 번에 하나, 다른 기둥으로만 옮길 수 있고 더 큰 원판이나 바닥에만 원판을 놓을 수 있을 때 n개의 원판을 세 번째 기둥에 모두 다 옮기는 데 필요한 이동 횟수
Solution Hn을 n개의 원판이 있는 The tower of hanoi의 해결 이동횟수라고 할 때 이전에 이동시킨 원판의 이동횟수의 두 배 + 1회가 해결 이동횟수임을 알 수 있다.
즉 Hn=2Hn−1+1이고 H1=1이 Initial condition이다. Hn=2Hn−1+1=2(2Hn−2+1)+1=22Hn−2+2+1=22(2Hn−3+1)+2+1=23Hn−3+22+2+1⋯=2n−1
로 H1에서도 성립하는 Formula를 생성할 수 있다.
팁
Example
Codeword Enumeration
0이 짝수 개인 경우에만 10진 Number string을 유효한 Codeword로 간주할 때 an이 유효한 n자릿수 10진 Codeword의 가짓수 일 때 an의 Recurrence relation
Solution
먼저 a1은 0을 제외한 한자리 수 이므로 9이다.
이 때 유효한 Codeword에 유효하지 않은 Codeword를 붙여 Codeword로 만들 수 있다.
즉 n−1자리 Codeword에 Codeword가 아닌(1~9)를 붙이거나 Codeword가 아닌 Number string에 0을 붙여 Codeword를 만들 수 있다.
전자는 9an−1이고 후자는 10n−1−an−1이다.
따라서 an=9an−1+(10n−1−an−1)=8an−1+10n−1임을 구할 수 있다.
팁
Example
n+1개의 숫자 x0,x1,…,xn의 Product의 순서를 지정하기 위해 괄호 치는 방법의 수 Cn에 대한 Recurrence relation
Solution Cn의 Recurrence relation을 도출하기 위해 x0⋅x1⋅...⋅xn의 Product에서 하나의 ⋅이 괄호 사이에 나와 있음을 인지해야 한다.
예시로 C2=2일 때 (x0⋅x1)⋅x2,x0⋅(x1⋅x2)로 확인 가능하다.
즉, 마지막 연산은 어떠한 수 사이에 Operation(⋅)이 존재하므로 괄호 삽입 방법 수는 Cn=C0Cn−1+C1Cn−2+⋯+Cn−2C1+Cn−1C0이므로 ∑k=0n−1CkCn−k−1임을 알 수 있다.
Initial term C0=C1=1임을 확인해 Cn의 Recurrence relation은 n+1C(2n,n)가 성립함을 알 수 있다.
추가적으로 위 Sequence {Cn}은 Catalan number의 Sequence이다.
Linear homogeneous recurrence relation of degree(차수의 선형 동차 점화식)은 Real number c1,c2,…,ck(ck/not=0)에 대해 an=c1an−1+c2an−2+⋯+ckan−k를 만족하는 Recurrence relation이다.
Sequence의 Term의 Degree는 모두 Constant이며 n에 의해 변화하지 않기 때문에 Homogeneous(동차)이다. an이 Sequence의 이전 k개의 Term으로 표현되기 때문에 Degree는 k이다.
즉 Recurrence relation을 만족하는 Sequence는 Recurrence relation과 Initial condition에 의해 고유하게 결정(a0=C0,a1=C1,⋯,ak−1=Ck−1)된다.
정보
Information
Recurrence relation Pn=(1.11)Pn−1은 Linear homogeneous recurrence relation of degree 1(1차 선형 동차 점화식), Recurrence relation fn=fn−1+fn−2는 Linear homogeneous recurrence relation of degree 2, Recurrence relation an=an−5는 Linear homogeneous recurrence relation of degree 5이다.
Recurrence relation an=an−1+an−22는 Linear recurrence relation이 아니다.
Recurrence relation Hn=2Hn−1+1은 Homogeneous recurrence relation이 아니다.
Recurrence relation Bn=nBn−1은 Constant coefficient(상수 계수)가 없어 Linear homogeneous recurrence relation이 아니다.
Solving Linear Homogeneous Recurrence Relations with Constant Coefficients
Linear homogeneous recurrence relation을 해결하기 위한 기본 접근법은 an=rn(단, r은 Constant) 형태의 Solution을 찾는 것이다. an=c1an−1+c2an−2+⋯+ckan−kifandonlyifrn=c1rn−1+c2rn−2+⋯+ckrn−k
이기에 양 변을 rn−k로 나누고 우항을 좌항으로 옮기면 rk−c1rk−1−c2rk−2−⋯−ck−1r−ck=0이 된다.
따라서 Sequence {an}이 an=rn형태일 때 r이 Last equation의 Solution일 경우에만 이 Sequence는 Solution이 된다.
이 Equation은 Recurrence relation의 Characteristic equation(특성 방정식)이라고 하며 이의 Solution을 Characteristic root(특성 근)이라고 한다.
Characteristic root은 Recurrence relation의 모든 Solution을 위한 Explict solution(명시적 공식)을 제공하는 데 사용될 수 있다.
정보
Theorem
Real number c1,c2에 대해 r2−c1r−c2=0의 두 개의 서로 다른 Root r1,r2가 존재할 때 {an}은 Recurrence relation n=0,1,2,…에 대해서 an=c1an−1+c2an−2ifandonlyifan=α1r1n+α2r2n인 Constant α1,α2가 존재하며 성립
Proof
이 Theorem을 증명하기 위해 r1,r2가 Characteristic equation의 Root임과 α1,α2가 Constant일 때 an=α1r1n+α2r2n인 Sequence {an}이 Recurrence relation의 Solution임을 보여야 하며, Sequence {an}이 Solution일 경우 어떤 Constant α1,α2에 대해 an=α1r1n+α2r2n임을 보여야 한다. an=α1r1n+α2r2n일 때 Sequence {an}이 Recurrence relation의 Solution임을 보이기 위해 r1,r2가 r2−c1r−c2=0의 Root이므로 r12=c1r1+c2,r22=c1r2+c2가 성립한다.
위 식들을 이용하여 c1an−1+c2an−2=c1(α1r1n−1+α2r2n−1)+c2(α1r1n−2+α2r2n−2)=α1r1n−2(c1r1+c2)+α2r2n−2(c1r2+c2)=α1r1n−2r12+α2r2n−2r22=α1r1n+α2r2n=an
로 {an}이 an=α1r1n+α2r2n이 Recurrence relation의 Solution임을 보여준다.
Recurrence relation an=c1an−1+c2an−2의 모든 Solution {an}이 Constant α1,α2와 n=0,1,2,…에 대해 an=α1r1n+α2r2n의 형태를 가지는 것을 보이기 위해 {an}이 Recurrence relation의 Solution이라고 가정하고 Initial condition a0=C0,a1=C1이 성립한다고 가정한다.
Sequence {an}이 an=α1r1n+α2r2n의 형태를 가질 때 동일한 Initial condition이 만족됨을 보여주면 된다.
즉, a0=C0=α1+α2,a1=C1=α1r1+α2r2
위 두 Equation을 α1,α2로 풀 수 있다.
첫 Equation으로 α2=C0−α1임을 이용하여 두 번째 Equation을 전개하면 C1=α1r1+(C0−α1)r2=α1(r1−r2)+C0r2이다.
즉 α1=r1−r2C1−C0r2이고, α2=C0−α1=C0−r1−r2C1−C0r2=r1−r2C0r1−C1이다.
위 Expression들이 α1,α2가 r1=r2여야 성립한다.
따라서 α1,α2의 이 값으로 {an}은 α1r1n+α2r2n를 만족하며 두 개의 Initial condition을 만족한다. {an},{α1r1n+α2r2n} 둘 다 Recurrence relation an=c1an−1+c2an−2의 Solution이며 n=0,n=1일 때의 Initial condition을 모두 만족한다.
Linear homogeneous recurrence relation of degree 2는 두 개의 Initial condition을 가지고 유일한 Solution을 가지므로 두 Solution이 동일하다는 결론을 낼 수 있다.
즉 모든 Nonnegative integer n에 대해 an=α1r1n+α2r2n이다.
Constant coefficient를 가진 Linear homogenoeous recurrence relation of degree 2가 Constant α1,α2에 대해 an=α1r1n+α2r2n 형태여야 함을 보여줌으로 증명하였다.
팁
Example
Recurrence relation an=an−1+2an−2의 a0=2,a1=7일 때 Solution
Solution
위 Theorem을 이용하여 r2−r−2=0의 Root r=−1,r=2를 이용하여{an}은 Recurrence relation an=α12n+α2(−1)n과 필요 충분 조건이 된다. a0=2=α1+α2,a1=7=α1⋅2+α2⋅(−1)임을 이용하여 α1=3,α2=−1임을 구할 수 있다.
즉 an=3⋅2n−(−1)n이 Recurrence realtion의 Solution이다.
팁
Example
위 Theorem을 활용하여 Fibonacci number의 Explicit formula 정의
Solution
Fibonacci number의 Recurrence relation은 fn=fn−1+fn−2임과 Initial condition이 f0=0,f1=1임을 이용하여 r2−r−1=0의 Root r=21±5임을 알 수 있다.
위 Theorem을 활용하여 fn=α1(21+5)n+α2(21−5)n을 만족하는 Constant α1,α2를 구해야 한다. f0=α1+α2=0,f1=α121+5+α221−5=1을 만족하는 Constant α1=51,α2=5−1임을 알 수 있다.
즉 Finobacci number의 Explicit formula는 fn=51(21+5)n−51(21−5)n이다.
위 Theorem은 Root가 동일할 때 활용할 수 없었다. r0가 Characteristic equation an=nr0n의 중복 Root일 때 다른 Theorem을 활용할 수 있다.
정보
Theorem
Real number c1,c2(c2=0)일 때 r2−c1r−c2=0가 Root를 하나만 가질 때 {an}은 n−0,1,2,…일 때 an=c1an−1+c2an−2와 an=α1r0n+α2nr0n가 필요 충분 조건의 Solution이 된다.
Solution r2−6r+9=0의 Root는 r=3 뿐이므로 an=α13n+α2n3n을 만족하는 Constant를 찾으면 된다. a0=1=α1,a1=6=α1⋅3+α2⋅3이기에 α1=1,α2=1이다.
즉 위 recurrence relation의 Solution인 an은 an=3n+n3n이다.
Degree가 2 이상이고 Characteristic equation이 서로 다른 Root를 가질 때의 Constant coefficient를 가지는 Linear homogeneous recurrence relation의 Solution을 구하는 Theorem은 아래와 같다.
정보
Theorem
Linear homogeneous recurrence relation of degree k
Proof
Order(차수)가 k인 Linear homogeneous recurrence relation an=c1an−1+⋯+ckan−k에 ai=ri(1≥i≥n,r=0)을 대입해 rn=c1rn−1+c2rn−2+⋯+ckrn−k가 되며 정리하여 rk−c1xk−1−⋯−ck=0으로 나타낼 수 있다.
이 Equation은 Order가 k인 Equation이므로 k개의 Root를 가지고, ck=0일 경우 Root는 0이 될 수 없다.
Root를 r1,r2,…,rk로 둘 경우 모든 i에 대해 an=rin은 Recurrence relation의 Solution이 된다(이를 Fundamental solution(기본해)라고 한다.).
Linear homogeneous recurrence relation의 Solution h1(n),⋯,hk(n)에 대해 임의의 Constant α1,⋯,αk에 대해 H(n)=∑i=1rαihi(n)도 Solution이 된다.
위 Characteristic equation의 서로 다른 k개의 Root r1,⋯,rk에 대해 an=α1r1n+α2r2n+⋯+αkrkn이고 Initial condition을 대입하여 해결할 수 있다.
팁
Example
an=6an−1−11an−2+6an−3,a0=2,a1=5,a2=15
Solution r3−6r2+11r−6이 Characteristic polynomial이다.
Characteristic root는 (r−1)(r−2)(r−3)이기에 r=1,2,3이다.
위 Theorem을 활용하여 an=α1⋅1n+α2⋅2n+α3⋅3n에 해당하는 Constant α1,α2,α3에 해당하는 값을 찾기 위해 Initial condition a0,a1,a2를 이용하여 a0=2=α1+α2+α3,a1=5=α1+α2⋅2+α3⋅3,a2=15=α1+α2⋅4+α3⋅9로 α1=1,α2=−1,α3=2임을 알 수 있다.
즉 Sequence {an}은 an=1−2n+2⋅3n임을 알 수 있다.
중복 Root를 가질 때 아래의 Theorem을 활용할 수 있다.
정보
Theorem
Real number c1,c2,…,.ck에 대해 Characteristic equation rk−c1rk−1−⋯−ck=0이 t 개의Distinct root r1,r2,…,rt의 중복도 m1,m2,…,mt(∑i=1tmi=k)일 때 Seqaunce {an}이 다음 Recurrence relation의 Solution이 된다. an=c1an−1+c2an−2+⋯+ckan−kifandonlyifan=(α1,0+α1,1n+⋯+α1,m1−1nm1−1)r1n+(α2,0+α2,1n+⋯+α2m,m2−1nm2−1)r2n+⋯+(αt,0+αt,1n+⋯+αt,mt−1nmt−1)rtn가 ai,j가 1≤i≤tand0≤j≤mi−1인 Constant에서 성립한다.
Solution
Characteristic equation r3+3r2+3r+1=0의 Root r=−1뿐이다. (r+1)3
위 Theorem을 사용하여 an=α1,0(−1)n+α1,1n(−1)n+α1,2n2(−1)n에 Initial condition을 대입하여 a0=1=α1,0,a1=−2=−α1,0−α1,1−α1,2,a2=−1=α1,0+2α1,1+4α1,2에 해당하는 Constant가 α1,0=1,α1,1=3,α1,2=−2임을 알 수 있다.
Theorem에 따라 an=(1+3n−2n2)(−1)n임을 알 수 있다.
Linear Nonhomogeneous Recurrence Relations with Constant Coefficients
Linear nonhomogeneous recurrence relation(선형 비동차 점화식)은 Linear homogeneous recurrence relation에 n에만 의존하고 0이 아닌 Function F(n)이 추가된 것이다.
정보
Theorem
Nonhomogeneous linear recurrence relation의 Solution이 {an(p)}일 때 an=c1an−1+c2an−2+⋯+ckan−k+F(n)으로 표현할 수 있으며 모든 Solution은 {an(h)}가 Associated homogeneous recurrence relation(수반 동차 점화식) an=c1an−1+c2an−2+⋯+ckan−k의 Solution인 {an(p)+an(h)}의 형태를 가짐
Solution an(p)가 Nonhomogeneous linear recurrence relation의 Solution이므로 an(p)=c1an−1(p)+c2an−2(p)+⋯+ckan−k(p)+F(n)임을 알 수 있다. {bn}을 위 Recurrence relation의 Particular solution(특수해)라고 할 때 bn=c1bn−1+c2bn−2+⋯+ckbn−k+F(n)이다. bn−an(p)=c1(bn−1−an−1(p)+⋯+ck(bn−k−an−k(p))을 이용하여 {bn−an(p)}이 {an(h)}임을 알 수 있다.
즉 모든 n에 대해 bn=an(p)+an(h)임을 알 수 있다.
정보
Theorem
{an}이 Nonhomogeneous recurrence relation an=c1an−1+⋯+ckan−k+F(n)이고 F(n)=(btnt+bt−1nt−1+b1n+b0)sn일 때의 Solution일 때 s가 Associated linear homogeneous recurrence relation의 Characteristic equation의 Root가 아닐 때 (ptnt+pt−1t−1+⋯+p1n+p0)sn 형태의 Solution이 존재하며 s가 이 Characteristic equation의 중복도 m인 Root일 때 Particular solution의 형태는 nm(ptnt+pt−1nt−1+⋯+p1n+p0)sn
팁
Example
an=5an−1−6an−2+7n의 모든 Solution
Solution
Linear nonhomogeneous recurrence relation이므로 Associated homogeneous recurrent relation an=5an−1−6an−2의 Solution은 an(h)=α1⋅3n+α2⋅2n이다. F(n)=7n이므로 an(p)=C⋅7n이다. C⋅7n=5C⋅7n−1−6C⋅7n−2+7n을 이용하여 49C=35C−6C+49임을 이용해 C=2049,an(p)=(2049)7n임을 알 수 있다.
따라서 모든 Solution은 an=α1⋅3n+α2⋅2n+(2049)7n임을 알 수 있다.
팁
Example
an=∑k=1nk일 때 an=an−1+n의 Solution
Solution an의 Associated linear homogenoeus recurrence relation이 an=an−1이다. an(h)=c(1)n=c이므로 F(n)=n=n(1)n이고 s=1은 Order가 1인 Characteristic equation의 Root이므로 Particular solution의 형태는 n(p1n+p0)=p1n2+p0n이다.
Recurrence relation에 대입하여 p1n2+p0n=p1(n−1)2+p0(n−1)+n임을 알 수 있다.
간단히 요약하여 n(2p1−1)+(p0−p1)=0이기에 2p1−1=0,p0−p1=0,p0=p1=21임을 알 수 있다.
즉, an(p)=2n2+n=2n(n+1)이 Particular solution이다.
Original recurrence relation an=an−1+n=an(h)+an(p)=c+2n(n+1)에 대해 a1=1,c+1⋅22=c+1, 즉 c=0이기에 an=2n(n+1)임을 알 수 있다.
7.3. Divide-and-Conquer Algorithms and Recurrence Relations
Recursive algorithm이 크기 n의 문제를 a개의 Subproblem으로 나눠 각 하위 Subproblem의 크기가 bn라고 할 때 Algorithm의 Conquer step에서 Subproblem의 Solution을 원래 Problem의 Solution으로 결합하기 위해 g(n)개의 추가 작업이 필요할 때 f(n)이 크기 n의 문제를 해결하는 데 필요한 작업 수를 나타낼 때 f는 f(n)=af(bn)+g(n)의 관계로 나타내며 Divide-and-conquer recurrence relation이라 한다.
팁
Example
Binary search algorithm이 크기가 n인 Search sequence에서 Element를 찾는 과정을 크기 2n인 Search sequence에서 이 Element를 찾는 Binary search로 줄인다.
이 Reduction을 구현하기 위해 List의 어느 절반을 고를 지와 List에 남아있는 Element가 남아있는지 비교하는 것이기 때문에 n이 짝수라면 f(n)=f(n/2)+2가 된다.
팁
Example
Merge sort algorithm은 n개의 Element를 정렬할 List를 2n Element를 가진 두 개의 List로 나눈 다음 2n Element를 가진 두 개의 Sorted list로 나눈 후 2n Element를 가진 두개의 Sorted list를 하나의 Sorted list로 병합하는 데 n보다 적은 비교를 사용하기에 총 Merge sort의 비교 수는 M(n)보다 작을 때 M(n)=2M(n/2)+n이 된다.
팁
Example
Fast multiplication of Integer는 Divide-and-conquer technique을 사용하여 효율적으로 Integer들의 Product를 구할 수 있다.
en rodml 2n-bit integer를 각각 n-bit 씩 두 개의 Block으로 나누고 원래의 Product는 두 개의 2n-bit integer의 Product에서 n-bit의 세 번의 Product, Sum, Bit shift로 줄어든다.
a=(a2n−1a2n−2⋯a1a0)2, b=(b2n−1b2n−2⋯b1b0)2일 때 A1=(a2n−1⋯an+1an)2, A0=(an−1⋯a1a0)2, B1=(b2n−1⋯bn+1bn)2, B0=(bn−1⋯b1b0)2일 때 a=2nA1+A0이고 b=2nB1+B0이므로 ab=(22n+2n)A1B1+2n(A1−A0)(B1−B0)+(2n+1)A0B0이다.
이 Identity의 중요한 사실은 두 개의 2n-bit integer를 Product하는 데 n-bit integer의 세 Product와 함께 Addition, Subtraction, Shift를 사용할 수 있음을 보여준다. f(n)을 두 개의 n-bit integer의 Product에 필요한 총 Bit operation 수라면 f(2n)=3f(n)+Cn이 된다.
팁
Example
두 개의 n×n martrix를 Martrix multiplication의 Definition을 사용하여 n3회의 Product와 n2(n−1)회의 Addition이 필요하다는 것을 보여주었다.
즉 두 n×n martrix를 계산하는 데 O(n3)만큼의 Operation이 필요하다.
Fast matrix multiplication은 두 n이 짝수인 n×n matrix의 Product를 구하기 위한 Divide-and-conquer algorithm이다.
두 개의 2n×2n matrix의 Product를 7회 수행하고 2n×2n matrix의 Addition을 15회 수행하도록 Matrix multiplication을 줄일 수 있다. f(n)을 n×n matrix끼리의 Multiplication이사용한 Operation의 수라고 할 때 n이 짝수라면 f(n)=7f(n/2)+15n2/4가 성립한다.
정보
Theorem
f가 Increasing function이며 f(n)=af(n/b)+c라는 Recurrence relation을 만족할 때(단 n은 b로 나누어떨어지고 a≥1, b>1, c는 Positive integer) a>1일 경우 O(nlogba)이고 a=1일 경우 O(logn)이며
추가적으로 k가 Positive integer일 때 n=bk, C1=f(1)+a−1c,C2=a−1−c일 때 f(n)=C1nlogba+C2
Proof n=bk이기에 g(n)=c로 놓으면f(n)=akf(1)+∑j=0k−1ajc=akf(1)+c∑j=0k−1aj이고 a=1일 때 f(n)=f(1)+ck(k=logbn) n=bk일 때 bk<n<bk+1인 Positive integer k에 대해 f는 Increasing function이기에 f(n)≤f(bk+1)=f(1)+c(k+1)=(f(1)+c)+ck≤(f(1)+c)+clogbn
이 성립하기에 두 경우 다 a=1일 때 f(n)은 O(logn)이다. a>1일 때 Geometric progression의 Sum formula에 의해 ak=alogbn=nlogba이기에 C1=f(1)+c/(a−1),C2=−c/(a−1)일 때 f(n)=akf(1)+c(ak−1)/(a−1)=ak[f(1)+c/(a−1)]−c/(a−1)=C1nlogba+C2
가 성립한다. n=bk일 때 앞전과 같이 bk<n<bk+1를 만족하는 Nonnegative integer k에 대해 f가 Increasing function이기에 k≤logbn<k+1이기에f(n)≤f(bk+1)=C1ak+1+C2≤(C1a)alogbn+C2≤(C1a)nlogba+C2가 성립하며 f(n)은 O(nlogba)이다.
팁
Example
Increasing function f(n)=5f(n/2)+3일 때 Positive integer k에 대해 f(2k)와 f(n)의 Estimate
Solution
위 Theorem을 이용하여 a=5,b=2,c=3,n=2k일 때 f(n)=5k[f(1)+3/(5−1)]+[−3/(5−1)]=5k(431)−43이고 Increasing function이기에 Estimate를 구할 수 있고 f(n)은 O(nlog5)이다.
정보
Theorem
Master theorem f가 Increasing function일 때 Recurrence relation f(n)=af(n/b)+cnd에 대해 Positive integer k에 대해 n=bk일 때 a≥1, b>1인 Integer, c가 Positive real number, d가 Nonnegative real number일 때 f(n)은 a<bd일 때 O(nd), a=bd일 때 O(ndlogn), a>bd일 때 O(nlogba)가 성립
Proof
시간 있을 때 정리
팁
Example
두 개의 n-bit integer를 곱하기 위해 Fast multiplication의 Bit operation 수의 Estimate
Solution
이전 Example에서 Fast multiplication의 n%2=0일 때 f(n)=3f(n/2)+Cn이다(f(n)은 두 개의 n bit Integer를 Multiplication하는 데 필요한 Operation 수).
따라서 Master theorem에 의해 f(n)은 O(nlog3)이다.
Sequence a0,a1,⋯,ak,⋯(ai는 Real number)의 Generating function(생성 함수)는 G(x)=a0+a1x+⋯+akxk+⋯=∑k=0∞akxk이며 이를 Ordinary generating function(일반 생성 함수)라고도 한다.
팁
Example
Positive integer m에 대해 ak=C(m,k)라고 할 때 Sequence a0,a1,⋯,am의 Generating function
Solution G(x)=C(m,0)+C(m,1)x+⋯+C(m,m)xm이고 Binomial theorem에 따라 G(x)=(1+x)m이 되게 된다.
Generating function을 사용하여 n가지의 서로 다른 종류의 r개 Object를 선택하는 방법의 수를 구하되 각 종류의 Object를 최소한 하나 이상 선택
Solution n가지 종류의 Object는 Generating function G(x)는 (x+x2+⋯)의 형태의Sequence {ar}의 element가 되며 Sequence {ar}은 각 종류의 Object를 최소한 하나 이상 선택해야 할 경우 n가지의 서로 다른 종류의 r개의 Object를 선택하는 방법의 수가 된다.
즉 G(x)=(x+x2+⋯)n=xn(1+x+x2+⋯)=(1−x)nxn이다.
Extended binomial theorem을 사용하여 G(x)=xn/(1−x)n=xn⋅(1−x)−n=xn∑r=0∞(r−n)(−x)r=xn∑r=0∞(−1)rC(n+r−1,r)(−1)rxr=∑r=0∞C(n+r−1,r)xn+r=∑t=n∞C(t−1,t−n)xt=∑r=n∞C(r−1,r−n)xr
이 된다.
Summation을 옮기기 위해 t=n+r로 설정하여 r=0일 때 t=n, n+r−1=t−1이 되게 된다.
Using Generating Functions to Solve Recurrence Relations
팁
Example
a0=2이고 ak=3ak−1을 만족하는 Recurrence relation을 해결
Solution G(x)를 Sequence {ak}의 Generating function으로 둘 경우 G(x)=∑k=0∞akxk가 된다. xG(x)=∑k=0∞akxk+1=∑k=1∞ak−1xk이다. G(x)−3xG(x)=∑k=0∞akxk−3∑k=1∞ak−1xk=a0+∑k=1∞(ak−3ak−1)xk=2(∵a0=2,ak=3ak−1)
가 되므로 G(x)−3xG(x)=(1−3x)G(x)=2이므로 G(x)=1−3x2가 된다.
Identity 1/(1−ax)=∑k=0∞akxk를 사용하여 G(x)=2∑k=0∞3kxk=∑k=0∞2⋅3kxk이므로 ak=2⋅3k이다.
팁
Example
7.1.에서 다룬 Codeword가 0이 짝수개 포함된 n자리 10진수 일 때 an을 길이 n의 유효한 Codeword 수라고 할 때 an=8an−1+10n−1임과 a1=9임을 이용하여 Generating function을 사용해 Explicit formula todtjd
Solution a0=1로 설정하여 Generating function 작업을 간소화하면 a1=8a0+100=9로 성립한다.
Recurrence relation 양 변에 xn을 곱해 anxn=8an−1xn+10n−1xn을 얻을 수 있다. G(x)=∑n=0∞anxn을 Sequence {an}의 Generating function으로 둘 경우 마지막 Equation의 양 변을 n=1 부터 시작하여 Sum할 경우 G(x−1)=sumn=1∞anxn=∑n=1∞(8an−1xn+10n−1xn)=8∑n=1∞an−1xn+∑n=1∞10n−1xn=8x∑n=0∞anxn+x∑n=0∞10nxn=8xG(x)+x/(1−10x)
이기에 G(x)=(1−8x)(1−10x)1−9x이다.
정리를 통해 G(x)=21(1−8x1+1−10x1)이기에 안의 1−8x1를 ∑n=0∞8nxn으로, 1−10x1을 ∑n=0∞10nxn으로 변환하여 묶으면 G(x)=21(∑n=0∞8nxn+∑n=0∞10nxn)=∑n=0∞21(8n+10n)xn이므로 an=21(8n+10n)이다.
이산 수학 수업에서 모든 학생은 컴퓨터 과학이나 수학 전공이거나 둘 다일 수 있을 때 컴퓨터 과학 전공이 25명, 수학 전공이 13, 둘 다 전공이 8일 때 수업의 학생 수
Solution
이전에 다뤘던 Principle of Inclusion-Exclusion을 이용하여 ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣이기에 30이다.
Principle of inclusion-exclusion을 여러 Set에도 사용 가능하며, 반복하여 적용하는 것과 같다.
팁
Example
총 1232명의 스페인어 과정 수강생, 879명의 프랑스어 과정 수강생, 114명의 러시아어 과정 수강생이고 스페인어와 프랑스어 과정을 수강한 수강생은 103명, 스페인어 러시아어는 23명, 프랑스어와 러시아어는 14명 일 때 2092명의 학생이 스페인어나 프랑스어 러시아어를 수강했을 때 세 언어 과정을 수강한 수강생의 수
Solution
스페인, 프랑스, 러시아어 수강생 Set을 S,F,R로 둘 때 ∣S∣=1232,∣F∣=879,∣R∣=114,∣S∩F∣=103,∣S∩R∣=23,∣F∩R∣=14,∣S∪F∪R∣=2092임을 이용하여 ∣S∪F∪R∣=∣S∣+∣F∣+∣R∣−∣S∩F∣−∣S∩R∣−∣F∩R∣+∣S∩F∩R∣이기에 2092=1232+8790+114−103−23−14+∣S∩F∩R∣로 7임을 알 수 있다.
정보
Theorem
The principle of inclusion-exclusion A1,A2,⋯,An이 Finite set일 때 ∣A1∪A2∪⋯∪An∣=∑1≤i≤n∣Ai∣−∑1≤i<j≤n∣Ai∩Aj∣+⋯+(−1)n+1∣A1∩A2∩⋯∩An∣이 성립한다.
Ai를 Property Pi를 가진 Element를 포함하는 Subset으로 지정할 경우 모든 Property Pi를 가진 Element Pi1,Pi2,…,Pin의 수를 Notation N(Pi1Pi2…Pin)로 표현한다.
즉, ∣Ai1∩Ai2∩⋯∩Aik∣=N(Pi1Pi2⋯Pik)이다.
Property P1,P2,…,Pn이 없는 Element의 수를 Notation N(P1′P2′⋯Pn′)으로 표현한다.
Set의 Element의 수를 N으로 둔다면 N(P1′P2′⋯Pn′)=N−∑1≤i≤nN(Pi)+∑1≤i<j≤nN(PiPj)−⋯+(−1)nN(P1P2⋯Pn)으로 나타낼 수 있다.
팁
Example
x1+x2+x3=11이며 x1≤3,x2≤4,x3≤6을 만족하는 Integer일 때 Solution 개수
Solution
Principle of inclusion-exclusion을 활용하기 위해 P1을 x>3과 같이 역치를 하여 N(P1′P2′P3′)=N−N(P1)−N(P2)−N(P3)+N(P1P2)+N(P1P3)+N(P2P3)−N(P1P2P3)=78−36028−15+6+1+0−0=6이 답이 된다.
(N=C(3+11−1,11),N(P1)=C(3+7−1,7),N(P2)=C(3+6−1,6),N(P3)=C(3+4−1,4),N(P1P2)=C(3+2−1,2),N(P1P3)=C(3+0−1,0)=1,N(P2P3)=0,N(P1P2P3)=0)
Principle of inclusion-exclusion을 이용하여 지정된 Positive integer를 초과하지 않는 Prime의 개수를 찾을 수 있으며 이를 The sieve of Eratosthenes라고 한다.
Composite number는 그 Number의 Square root를 초과하지 않는 Prime으로 나누어 떨어진다는 점을 활용하여 반복한다.
팁
Example
100 이하의 Prime 개수를 The sieve of Eratosthenes를 이용하여 구함
Solution
100의 Square root 10 이하의 Prime set은 {2,3,5,7}이다.
이를 이용하여 위 Set의 Cardinality 4+N(P1′P2′P3′P4′)를 수행한다. N(P1′P2′P3′P4′)=N−N(P1)−⋯+N(P1P2)+⋯−N(P1P2P3)−⋯+N(P1P2P3P4)이므로 N(P1′P2′P3′P4′)=99−⌊2100⌋−⋯+⌊2⋅3100⌋+⋯−⌊2⋅3⋅5100⌋−⋯+⌊2⋅3⋅5⋅7100⌋=21이다.\
.png)
Principle of include-exclude를 이용하여 m개의 Element에서 n개의 Element로 가는 Set의 Onto function 수를 구할 때도 사용할 수 있다.
정보
Theorem
Positive integer m,n이 n≤m일 때 nm−C(n,1)(n−1)m+C(n,2)(n−2)m−⋯+(−1)n−1C(n,n−1)⋅1m이 m개의 Element에서 n개의 Element로 가는 Set의 Onto function의 수
팁
Example
다섯 가지 서로 다른 직무를 네 명의 서로 다른 직원에게 할당하는 방법의 개수
4명의 직원이 5개 중 최소 하나의 직무를 맡는 경우를 Cardinality가 5인 Set에서 Cardinality가 4인 Set으로의 Onto function 상황과 똑같다.
즉, 45−C(4,1)35+C(4,2)25−C(4,3)15=1024−972+192−4=240이다.
n개의 Element로 이루어진 Derangement의 수는 Dn=n![1−1!1+2!1−3!1+⋯+(−1)nn!1]
Proof
Permutation이 i Element를 고정하면 Property Pi를 가진다고 할 때 Derangement의 수는 i=1,2,⋯,n에 대해 어떤 Property Pi를 갖지 않는 Property의 수이다.
즉, Dn=N(P1′P2′⋯Pn′)이다.
Permutation이기에 N=n!가 되고 N(Pi)=n−1이 된다.
반복하여 M(P1P2⋯Pm)=(n−m)!임을 이용하여 ∑1≤i1<i2<⋯<im≤nN(Pi1Pi2⋯Pim=C(n,m)(n−m)!임을 알 수 있다.
Principle of include-exclude의 Formula를 이용하여 Dn=N(P1′P′2⋯P′n)=N−∑1≤i≤nN(Pi)+∑1≤i<j≤nN(PiPj)−⋯+(−1)nN(P1P2⋯Pn)=n!−C(n,1)(n−1)!+⋯+(−1)nC(n,n)(n−n)!=n!−1!(n−1)!n!(n−1)!+⋯+(−1)nn!n!0!0!=n![1−1!1+⋯+(−1)nn!1]
으로 증명 가능하다.