Tpq^2를 구해보자..
a <- bq + aq + ap 이고 b <- bp + aq 이므로
가 된다.
따라서 p' = pp + qq이고 q' = 2pq + qq가 된다.
정의한 빈곳을 모두 채우면

a <- bq + aq + ap 이고 b <- bp + aq 이므로
(bp + aq)q + (bq + aq + ap)q + (bq + aq + ap)p
= bpq + aqq + bqq + aqq + apq + bpq + apq + app
= (2pq + qq)b + (2pq + qq)a + (pp + qq)a
(bp + aq)p + (bq + aq + ap)q
= bpp + apq + bqq + aqq + apq
= (pp + qq)b + (2pq + qq)a
가 된다.
따라서 p' = pp + qq이고 q' = 2pq + qq가 된다.
정의한 빈곳을 모두 채우면
(define (fib n)
(fib-iter 1 0 0 1 n ))
(define (fib-iter a b p q count)
(cond ((= count 0 ) b)
((even? count)
(fib-iter a
b
(+ (* p p) (* q q))
(+ (* 2 p q) (* q q))
(/ count 2)))
(else (fib-iter (+ (* b q) (* a q) (* a p))
(+ (* b p) (* a q))
p
q
(- count 1)))))

댓글 없음:
댓글 쓰기