; ====================================================================== ; ; Structure and Interpretation of Computer Programs ; (trial answer to excercises) ; ; 计算机程序的构造和解释(习题试解) ; ; created: code17 03/06/05 ; modified: ; (保持内容完整不变前提下,可以任意转载) ; ======================================================================
;; SICP No.1.45
;; 经测试表明,从计算2次根开始,需要1次average-damping ;; 从计算4次根开始,需要2次average-damping ;; 从计算8次根开始,需要3次average-damping ;; 可以推测, 从计算n次根开始,需要log2(n)次average-damping
;; 函数fast-expt, fixed-point, repeated, average-damp均直接使用课本或习题中的 (define (n-root n x) (define (times i) (if (< i 2) 0 (+ 1 (times (/ i 2))))) (define (div y) (/ x (fast-expt y (- n 1)))) (fixed-point ((repeated average-damp (times n)) div) 1.0))
;; Test-it: ;; Welcome to MzScheme version 209, Copyright (c) 2004 PLT Scheme, Inc. ;; > (n-root 3 27) ;; 2.9999972321057697 ;; > (n-root 4 625) ;; 5.000000000004688 ;; > (n-root 10 1024) ;; 2.0000011830103324 ;; > (n-root 30 (* 1024 1024 1024)) ;; 2.000004490765405 ;; >

|