Upload
sung-ki-choi
View
2.149
Download
4
Embed Size (px)
DESCRIPTION
아꿈사 스터디 발표자료. 발표일자 : 2011. 2. 12.스터디 주제 : TAOCP (The Art Of Computer Programming) #1발표주제 : 1.2.8. 피보나치 수
Citation preview
레오나르도 피보나치 (1170 – 1250)
I Hate You! T.T…
13세기 이탈리아의 수학자.
한 달에 한 쌍씩의 새끼를 낳는 토끼의
마리 수를 구하는 연습문제를 저서에 소개.
자연현상에서 관찰되는 피보나치 수는
토끼문제의 가정과 비슷한 이유일 거라고 추정된다. [Conway, Guy, The Book of Numbers (New York: Copernicus, 1996)]
http://blog.naver.com/devotion20/80120887670
1
1
2
3
5
8
13
한 쌍의 어린 토끼가 있습니다.
한 쌍의 토끼는 한달 후면 어른토끼가 되고,
어른토끼 한 쌍은 매달 한 쌍의 토끼를 낳습니다.
알고리즘과는 뭔 상관인가?!
덧셈에 대한 좋은 컴퓨터 연습문제.
1.1E (유클리드 알고리즘) 의 수 m과 n이 보다 크지 않으면 단계 E2는 많아야 k+1번 수행됨.
수학자 뤼까는 피보나치 수를 이용해 39자리 수 이 소수임을 증명.
E1. 나머지를 구한다. E2. 나머지가 0인가? E3. 맞줄임
예
아니오
𝐹𝑛+1 𝐹𝑛𝐹𝑛 𝐹𝑛−1
=1 11 0
𝑛
𝑭𝒏+𝟏𝑭𝒏−𝟏 − 𝑭𝒏𝟐 = (−𝟏)𝒏
증명:
1. 귀납법으로 쉽게 증명
2. 좀 더 난해한 방법으로 증명 : 다음과 같은 행렬 항등식을
간단한 귀납법으로 증명하고, 양변의 행렬식을 취한다.
… (4)
저는 1번 바로 귀납법 증명은 못 풀었고요, 2번이 더 쉬웠습니다.
𝐹𝑛+1 𝐹𝑛𝐹𝑛 𝐹𝑛−1
=1 11 0
𝑛
n=k일 때,
𝐹𝑘+1 𝐹𝑘𝐹𝑘 𝐹𝑘−1
=1 11 0
𝑘
가 참이라면
1 11 0
𝑘+1
=1 11 0
𝑘 1 11 0
=𝐹𝑘+1 𝐹𝑘𝐹𝑘 𝐹𝑘−1
1 11 0
=𝐹𝑘+1 + 𝐹𝑘 𝐹𝑘+1𝐹𝑘 + 𝐹𝑘−1 𝐹𝑘
=𝐹𝑘+2 𝐹𝑘+1𝐹𝑘+1 𝐹𝑘
… 이므로 n=k+1도 참이다.
𝑭𝒏+𝟏𝑭𝒏−𝟏 − 𝑭𝒏𝟐 = (−𝟏)𝒏 …… (4)
• 𝑭𝒏과 𝑭𝒏+𝟏가 공약수 a를 가진다면 식 (4)의 좌변은
공통의 약수로 묶어낼 수 있고, a(p + q) 형태가 된다.
• 우변은 (−𝟏)𝒏이니까, 좌변의 약수 a는
-1의 제곱으로만 표현되는 수다.
• 그럼 a는 고작 해봐야 1 아니면 -1밖에 될 수 없겠네.
• 따라서 𝑭𝒏과 𝑭𝒏+𝟏의 공약수는 1뿐이다 : 서로 소.
𝐹0 = 0; 𝐹1 = 1; 𝐹𝑛+2 = 𝐹𝑛+1 + 𝐹𝑛, 𝑛 ≥ 0 …… (2)
𝐹𝑛+𝑚 = 𝐹𝑚𝐹𝑛+1 + 𝐹𝑚−1𝐹𝑛 (6)
𝐹𝑛+2 = 1𝐹𝑛+1 + 1𝐹𝑛 𝐹𝑛+3 = 𝐹𝑛+2 + 𝐹𝑛+1 = 2𝐹𝑛+1 + 1𝐹𝑛 𝐹𝑛+4 = 𝐹𝑛+3 + 𝐹𝑛+2 = 3𝐹𝑛+1 + 2𝐹𝑛 𝐹𝑛+5 = 𝐹𝑛+4 + 𝐹𝑛+3 = 5𝐹𝑛+1 + 3𝐹𝑛 𝐹𝑛+6 = 𝐹𝑛+5 + 𝐹𝑛+4 = 8𝐹𝑛+1 + 5𝐹𝑛 𝐹𝑛+7 = 𝐹𝑛+6 + 𝐹𝑛+5 = 13𝐹𝑛+1 + 8𝐹𝑛 …귀납법을 통해 일반화하면, 임의의 양의 정수 m에 대해
𝐹𝑛+𝑚 = 𝐹𝑚𝐹𝑛+1 + 𝐹𝑚−1𝐹𝑛 (6)
식 (6)에서 m이 n의 배수이면, 귀납법을 통해서 다음을 알 수 있다.
𝐹𝑛𝑘는 𝐹𝑛의 배수이다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, …
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, …
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, …
정리 A (뤼카 E. Lucas, 1876). d=gcd(m,n) 이라고 할 때, 어떠한 수가 만일 𝐹𝑑를 나눈다면, 그리고 오직 그럴 때에만 그 수는 𝐹𝑚과 𝐹𝑛 모두를 나눈다. 즉,
gcd (𝐹𝑚, 𝐹𝑛)= 𝐹gcd (𝑚,𝑛).
𝐹𝑘
𝑘 0 1 2 3 4 5 6…
0 1 1 2 3 5 8…
m n d
𝐹𝑑 𝐹𝑚 𝐹𝑛
증명. 유클리드 알고리즘을 이용.
gcd (𝐹𝑚, 𝐹𝑛)= 𝐹gcd (𝑚,𝑛).
𝐹𝑛+𝑚 = 𝐹𝑚𝐹𝑛+1 + 𝐹𝑚−1𝐹𝑛 …… 식 (6)
• 𝐹𝑚과 𝐹𝑛의 모든 공약수는 𝐹𝑛+𝑚의 약수이기도 하다.
• 𝐹𝑛+𝑚과 𝐹𝑛의 모든 공약수 역시 𝐹𝑚𝐹𝑛+1의 약수.
• 𝐹𝑛+𝑚과 𝐹𝑛의 모든 공약수 역시 𝐹𝑚의 약수. 서로 소
오직 d가 𝐹𝑚+𝑛과 𝐹𝑛을 나눌 때에만
d는 𝐹𝑚과 𝐹𝑛을 나눈다. …… 명제 (8)
오직 d가 𝐹𝑚+𝑛과 𝐹𝑛을 나눌 때에만 d는 𝐹𝑚과 𝐹𝑛을 나눈다.
k에 대한 귀납법을 거치면…
오직 d가 𝐹𝑛+𝑘𝑛과 𝐹𝑛을 나눌 때에만 d는 𝐹𝑚과 𝐹𝑛을 나눈다.
이 결과를 좀 더 간명하게 표현하면…
명제 (8)을 만족하면서 𝐹0 = 0인 임의의 수열 < 𝐹𝑛 >이 정리 A를 만족함을 증명 (피보나치 수열은 명제 (8)도 만족하고 𝐹0 = 0인 수열니까 같이 증명되는 셈.)
오직 d가 𝐹𝑚과 𝐹𝑛을 나눌 때에만
d는 𝐹𝑚 𝑚𝑜𝑑 𝑛과 𝐹𝑛을 나눈다.
… 명제 (9)
오직 d가 𝐹𝑚과 𝐹𝑛을 나눌 때에만
d는 𝐹𝑚 𝑚𝑜𝑑 𝑛과 𝐹𝑛을 나눈다.
명제 (9)
r = 𝑚 𝑚𝑜𝑑 𝑛라고 적어보면, (r은 m을 n으로 나눈 나머지)
오직 d가 𝐹𝑚과 𝐹𝑛을 나눌 때에만 d는 𝐹𝑟과 𝐹𝑛을 나눈다.
*𝐹𝑚, 𝐹𝑛}의 공약수들은 *𝐹𝑛, 𝐹𝑟}의 공약수와 같다.
유클리드 알고리즘 조작과정에서 m과 n이 변해도
*𝐹𝑚, 𝐹𝑛}의 공약수 집합은 변하지 않음.
(마지막 r=0일 경우, 공약수 집합은 𝐹0 = 0과 𝐹gcd (𝑚,𝑛)의 공약수들)
다음과 같은 무한급수를 설정한다.
𝐺 𝑧 = 𝐹0 + 𝐹1𝑧 + 𝐹2𝑧2 + 𝐹3𝑧
3 + 𝐹4𝑧4+…
= 𝑧 + 𝑧2 + 𝑧3 + 𝑧4 +⋯
네, 교수님은 낙관적이셔서 참 좋으시겠어요. 이런 시도 안 하는 나는 비관적인 거야 뭐야…
115페이지.
𝐺 𝑧 = 𝐹0 + 𝐹1𝑧 + 𝐹2𝑧2 + 𝐹3𝑧
3 + 𝐹4𝑧4+…
z와 𝑧2을 곱해서 두 식을 만든다.
𝑧𝐺 𝑧 = 𝐹0𝑧 + 𝐹1𝑧2 + 𝐹2𝑧
3 + 𝐹3𝑧4 + 𝐹4𝑧
5+… 𝑧2𝐺 𝑧 = 𝐹0𝑧
2 + 𝐹1𝑧3 + 𝐹2𝑧
4 + 𝐹3𝑧5+…
처음 식에서 두 식을 빼고 정리하면,
1 − 𝑧 − 𝑧2 𝐺 𝑧 = 𝐹0 + 𝐹1 − 𝐹0 𝑧 + 𝐹2 − 𝐹1 − 𝐹0 𝑧2
+ 𝐹3 − 𝐹2 − 𝐹1 𝑧3 + 𝐹4 − 𝐹3 − 𝐹2 𝑧4 +⋯ =z
𝐺 𝑧 = 𝑧/ 1 − 𝑧 − 𝑧2 (11)
이제 𝐺 𝑧 의 조작을 통해서 < 𝐹𝑛 >에 대해 더 많은 것을 알아낼 수 있다.
𝐺 𝑧 = 𝑧/ 1 − 𝑧 − 𝑧2
분모 1 − 𝑧 − 𝑧2 의 실근은 1
2−1 ± 5 . 부분분수 기법으로 전개(?)
𝐺 𝑧 =1
5
1
1 − ∅𝑧−
1
1 − ∅ 𝑧
여기서 ∅ 는
∅ = 1 − ∅ =1
2(1 − 5)
수량 1/(1- ∅𝑧)은 무한 등비급수 1 + ∅𝑧 + ∅2𝑧2 +⋯ 의 합이므로
𝐺 𝑧 =1
5(1 + ∅𝑧 + ∅2𝑧2 +⋯− 1 − ∅ 𝑧 − ∅ 2𝑧2 −⋯)
다음 페이지 계속…
𝐺 𝑧 =1
5(1 + ∅𝑧 + ∅2𝑧2 +⋯− 1 − ∅ 𝑧 − ∅ 2𝑧2 −⋯)
여기서 𝑧𝑛의 계수들은 𝐹𝑛의 값들과 같아야 하며, 따라서
𝐺 𝑧 = 𝐹0 + 𝐹1𝑧 + 𝐹2𝑧2 + 𝐹3𝑧
3 + 𝐹4𝑧4+… (제일 처음 정의)
𝐹𝑛 =1
5(∅𝑛 − ∅ 𝑛)
(14)
피보나치 수의 중요한 닫힌 형식 공식. 18세기 초에 처음 발견됨.
𝐹𝑛 =1
5(∅𝑛 − ∅ 𝑛)를 통해 알 수 있는 여러 가지 것들:
1. ∅ 가 음수(-0.61803…)이고 절대값이 단위원보다 작으므로,
n이 커지면 ∅ 이 매우 작아진다. 따라서,
𝐹𝑛 =∅𝑛
5를 가장 가까운 정수로 반올림한 것.
2. 𝐺(𝑧)2=1
5(
1
(1−∅𝑧)2+
1
(1−∅ 𝑧)2−
2
1−𝑧−𝑧2)
3. 𝐺(𝑧)2의 𝑧𝑛항의 계수는 𝐹𝑛𝐹𝑛−𝑘𝑛𝑘=0 이므로 다음식이 유도된다.
𝐹𝑛𝐹𝑛−𝑘𝑛
𝑘=0=1
5𝑛 − 1 𝐹𝑛 +
2
5𝑛𝐹𝑛−1