구체수학 02.합.02.합과 점화식
상위 문서: {{ item.title }} -
02.SUMS.02.SUMS AND RECURRENCES
이 문서는 [[CONCRETE-MATH]] 2장.합 - 2.합과 점화식을 공부한 노트입니다.
위의 식은 다음과 같다.
한편으로는 다음 점화식과 같다고도 볼 수 있다.
예제
다음과 같은 식이 있다고 하자.
- 은 n을 몇 배 하고 어떤 상수를 더한 것이다.
그렇다면 다음과 같이 점화식을 꾸밀 수 있을 것이다.
python 으로 표현하자면 다음과 같을 것이다.
def R(n):
if n == 0:
return alpha
return R(n-1) + beta + gamma * n
# alpha, beta, gamma의 값은 아직 모른다
작은 값들부터 넣어보며 생각해보면 다음을 알 수 있다.
이를 다음과 같이 일반해로 유도해내자.
그리고 다음과 같은 경우들을 생각해보자.
R_n = 1 인 경우
이라면
- 잘 생각해 보면 이 점화식대로라면, 의 값이 무엇이건 간에 이라는 것을 알 수 있다.
- 는 초항이므로, 합을 몇 번이고 반복해도 딱 한 번만 더하기 때문이다.
- 은
0
과 곱하므로 지금 시점에서는 알아낼 방법이 없다.
R_n = n 인 경우
이라면
- 잘 생각해 보면 이 점화식대로라면, 의 값이 무엇이건 간에 라는 것을 알 수 있다.
- 더하는 항의 수 만큼 가 증가하기 때문이다.
- 은
0
과 곱하므로 지금 시점에서는 알아낼 방법이 없다.
R_n = n^2 인 경우
이라면
- 잘 생각해 보면 이 점화식대로라면, 의 값이 무엇이건 간에 라는 것을 알 수 있다.
- 이기 때문이다.
- 은
0
과 곱하므로 지금 시점에서는 알아낼 방법이 없다.
응용
다음과 같은 합이 있다고 하자.
python으로는 다음과 같을 것이다.
def sigma(n):
sum = 0
for k in range(0, n+1):
sum += a + b*k
return sum
위 합의 점화식은 다음과 같다.
python으로는 다음과 같을 것이다.
def S(n):
if n == 0:
return a
return S(n-1) + a + (b*n)
그렇다면 과 같은 방식으로, 다음과 같이 점화식을 꾸밀 수 있다.
모양이 같으므로, 어렵지 않게 다음의 사실을 알아낼 수 있다.
이를 에 대입해보면 다음과 같이 될 것이다.
검증
검증해보고 싶다.
이를 풀어 쓰면 구조를 이해하기 쉬울 것 같다.
일반해와 똑같은 모양이 나왔다.
예제: 하노이의 탑
하노이의 탑 점화식은 다음과 같다.
def T(n):
if n == 0:
return 0
return 2*T(n-1) + 1
양변을 으로 나누면 과 같은 모양이 된다.
def S(n):
if n == 0:
return 0
return S(n-1) + 2**(-n)
def T(n):
return S(n) * (2**n)
그렇다면 씩 더해가는 것이므로 다음과 같이 표현할 수 있다.
def S(n):
sum = 0
for k in range(1, n+1):
sum += 2**(-k)
return sum
def T(n):
return S(n) * (2**n)
고등학교 때 배운 등비수열의 합 공식 을 적용해 보면
따라서 하노이의 탑에 n
개의 원판이 있을 때, 이를 옮기는 최소한의 횟수는 임을 알 수 있다.
# 최적화 완료
def T(n):
return 2**n - 1
일반화
위의 풀이법을 사용하면 다음 형태의 점화식을 일반화할 수 있을 것 같다.
양 변에 을 곱하자. (단, .)
검증
위의 일반해를 하노이의 탑으로 검증해 보자.
하노이의 탑 점화식은 다음과 같았다.
일반화에 사용한 형태의 점화식이 다음과 같았으므로,
하노이의 탑에서 각 변수의 값은 다음과 같다.
따라서 일반해는 다음과 같다.
예제: quick-sort 퀵 소트
퀵 소트의 점화식은 다음과 같다.
점화식을 정리해 보자.
일단 양 변에 n
을 곱해서, 분모의 n
을 제거한다.
위의 식에서 아래 식을 빼보자.
즉, 다음과 같다.
그리고 점화식은 다음과 같이 정리된다.
식 를 참고해 꾸며보자.
식 을 적용하자.
퀵 소트 점화식의 닫힌 형식
위에서 얻은 퀵 소트 점화식의 해는 다음과 같았다.
해를 잘 살펴보면 조화수(Harmonic number)가 식의 중간에 들어가 있음을 알 수 있다.
퀵 소트 점화식의 해를 조화수를 사용해 정리해 보자.
만 떼어서 작업하는 쪽이 편할 것 같다.
간단하게 된 합을 적용해 보자.
Links
- [[CONCRETE-MATH]]
- 조화수(wikipedia)