이 문제는 연속 분수(continued fraction)을 구하는 프로시저를 만듭니다.
하지만 연속 분수는 무한정 나가기에
여기서 k항 유한 연속 분수(k-term finite continued fraction)이라 하여
k번째까지 계산하는 방법을 이용합니다.

연속 분수(continued fraction) - SICP 90쪽
여기서 N과 D가 모두 1인 경우 황금비의 역수에 다가간다고 합니다.
그래서 해당 프로시저를 만들고 확인해보았습니다.
프로시저는 되도는 것과 반복하는 것 두 가지를 만들었습니다.
되도는 것은 i가 1부터 시작하는 것이고,
반복하는 것은 i가 k부터 시작하는 것입니다.

먼저 되도는 것과 반복하는 것의 차이를 비교하였습니다.
k가 5일 때 0.625로 동일하네요.^^
다음으로 k가 얼마일 때 소수점 아래 4자리까지 맞아떨어지는지 확인하였습니다.
살펴보니 k가 11일 때 0.6180까지 맞습니다.
되도는 프로세스인 프로시저에서 조금 불만이 있습니다.
해당 프로시저를 보면 i라는 변수를 위해
안에서 새로운 프로시저(cont-frac-recr)를 만들어 되돌고 있습니다.
이를 다른 방법으로 할 수 있을까 생각했지만,
저로서는 도저히 나오지 않아 저처럼 하였습니다.
후에 어떤 방법이 떠오르거나 배운다면 수정하고 싶습니다.^^
참조
Structure and Interpretation of Computer Programs 2/E - Page 90
- Don't be late (10)2008/01/25
- SICP Exercise 연습문제 1.39 (0)2008/01/24
- SICP Exercise 연습문제 1.38 (0)2008/01/24
- SICP Exercise 연습문제 1.37 (4)2008/01/24
- SICP Exercise 연습문제 1.36 (0)2008/01/23
- SICP Exercise 연습문제 1.35 (0)2008/01/23
- SICP Exercise 연습문제 1.34 (0)2008/01/23
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요
도대체 뭘까(숫자에 약했다)
/眞レイアン/
반갑습니다.
이 포스트 시리즈는 SICP라는 책의 연습문제를 제가 풀어서 적은 것입니다.
그렇기에 해당 책이 없이 이 글만 보게 된다면 이해하실 분은 거의 없을겁니다.
엄청 빨리 풀어 가시네요?
불 붙으신듯 - 0 -?
/뎅궁씨/
네.. 달려야 합니다..^^ㅜㅜ