방금이 책을 재미있게 익히기 시작했습니다. 나는 그것이 숙제 였으면 좋겠지 만, MIT에 참석할 여유가 없으며, 어쨌든 나보다 더 똑똑한 사람들이 수없이 많습니다. : PSICP 운동 1.16, 내 버그는 바로 나에게 보이기 때문에.
빠른 경험치가 B를 발견하도록되어^N, 즉 4^2 = 16, 3^3 = 27 당신은 빠르게 EXP 전화 깜빡
(define (fast-exp b n)
(define (fast-exp-iter n-prime a)
(cond ((= n-prime 1) a)
((= (remainder n-prime 2) 1) (fast-exp-iter (- n-prime 1) (* a b)))
(else (fast-exp-iter (/ n-prime 2) (* a b b)))))
(fast-exp-iter n 1))
fast-exp 4 2; Expected 16, Actual 2
스타일 노트 (A는 처음에 1 "불변 양"(A * B를^N)를 사용하여 반복적 인 과정) 정확히 SICP 저자에 의해 어떤 것으로 예상된다됩니다 솔루션을 작업의 예를 제공 할 수 있습니다. .. 나는 당신이 C 구문에 익숙하다고 생각합니다. 닫는 괄호를 묶기 원할 것입니다, 그것은 그렇게 멋지게 보일 것입니다. Scheme에서 대괄호를 사용할 수도 있습니다. cond (cond [(= n-prime 1) a] ...) ... –
나는 들여 쓰기와 괄호를 고칠 자유를 취했습니다. – Svante
팁을위한 @omouse 시원한 감사! – Dave