이 문제는 연속 분수(continued fraction)을 구하는 프로시저를 만듭니다.

하지만 연속 분수는 무한정 나가기에

여기서 k항 유한 연속 분수(k-term finite continued fraction)이라 하여

k번째까지 계산하는 방법을 이용합니다.

 

c27

연속 분수(continued fraction) - SICP 90쪽

 

여기서 N과 D가 모두 1인 경우 황금비의 역수에 다가간다고 합니다.

그래서 해당 프로시저를 만들고 확인해보았습니다.

 

프로시저는 되도는 것과 반복하는 것 두 가지를 만들었습니다.

되도는 것은 i가 1부터 시작하는 것이고,

반복하는 것은 i가 k부터 시작하는 것입니다.

 

c26

먼저 되도는 것과 반복하는 것의 차이를 비교하였습니다.

k가 5일 때 0.625로 동일하네요.^^

 

다음으로 k가 얼마일 때 소수점 아래 4자리까지 맞아떨어지는지 확인하였습니다.

살펴보니 k가 11일 때 0.6180까지 맞습니다.

 

 

되도는 프로세스인 프로시저에서 조금 불만이 있습니다.

해당 프로시저를 보면 i라는 변수를 위해

안에서 새로운 프로시저(cont-frac-recr)를 만들어 되돌고 있습니다.

이를 다른 방법으로 할 수 있을까 생각했지만,

저로서는 도저히 나오지 않아 저처럼 하였습니다.

후에 어떤 방법이 떠오르거나 배운다면 수정하고 싶습니다.^^

 

 

참조

Structure and Interpretation of Computer Programs 2/E - Page 90

크리에이티브 커먼즈 라이선스
Creative Commons License
"in OCW" 카테고리의 다른 글

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1277

댓글을 달아 주세요

  1. 眞レイアン 2008/01/24 00:17  댓글주소  수정/삭제  댓글쓰기

    도대체 뭘까(숫자에 약했다)

  2. NoSyu 2008/01/24 00:19  댓글주소  수정/삭제  댓글쓰기

    /眞レイアン/
    반갑습니다.
    이 포스트 시리즈는 SICP라는 책의 연습문제를 제가 풀어서 적은 것입니다.
    그렇기에 해당 책이 없이 이 글만 보게 된다면 이해하실 분은 거의 없을겁니다.

  3. 뎅궁씨 2008/01/24 08:28  댓글주소  수정/삭제  댓글쓰기

    엄청 빨리 풀어 가시네요?
    불 붙으신듯 - 0 -?

  4. NoSyu 2008/01/24 08:34  댓글주소  수정/삭제  댓글쓰기

    /뎅궁씨/
    네.. 달려야 합니다..^^ㅜㅜ

[로그인][오픈아이디란?]