下面几题答案,非本人解答,有待验证
练习1.35
(define tolerance )
(define (fixed-point f first-guess)
(define (close-enough? v v)
(< (abs (- v v))
tolerance))
(define (try guess)
(let ((next (f guess)))
(if (close-enough? guess next)
next
(try next))))
(try first-guess))
(define (golden-ratio)
(fixed-point (lambda (x) (+ (/ x))) ))
练习1.36
(define tolerance )
(define (fixed-point f first-guess)
(define (close-enough? v v)
(< (abs (- v v))
tolerance))
(define (try guess)
(newline) (display guess) (newline)
(let ((next (f guess)))
(if (close-enough? guess next)
next
(try next))))
(try first-guess))
(define (xx)
(fixed-point (lambda (x) (/ (log ) (log x))) ))
(define (xx-a) ;using average damping
(fixed-point (lambda (x) (/ (+ x (/ (log ) (log x))) )) ))
练习1.37
a)
(define (cont-frac n d k)
(define (cf-iter i)
(if (< i k)
(/ (n i)
(+ (d i) (cf-iter (+ i ))))
))
(cf-iter ))
(define (test k)
(let ((g (/ (/ (+ (sqrt )) ))))
(if (< (abs (- g (cont-frac (lambda (i) ) (lambda (i) ) k)))
)
(display k)
(test (+ k )))))
b)
(define (cont-frac-i n d k)
(define (cf-iter2 i k-to-i)
(if (> i )
(cf-iter2 (- i ) (/ (n i) (+ (d i) k-to-i)))
k-to-i))
(cf-iter2 k ))
(define (test-i k)
(let ((g (/ (/ (+ (sqrt )) ))))
(if (< (abs (- g (cont-frac-i (lambda (i) ) (lambda (i) ) k)))
)
(display k)
(test-i (+ k )))))
练习1.38
(define (cont-frac-i n d k)
(define (cf-iter2 i k-to-i)
(if (> i )
(cf-iter2 (- i ) (/ (n (- i )) (+ (d (- i )) k-to-i)))
k-to-i))
(cf-iter2 (+ k ) ))
(define (e k)
(+
(cont-frac-i (lambda (i) )
(lambda (i)
(if (= (remainder i )) (* (+ (truncate (/ i )))) ))
k)))
练习1.39
(define (cont-frac-i n d k)
(define (cf-iter2 i k-to-i)
(if (> i )
(cf-iter2 (- i ) (/ (n (- i )) (- (d (- i )) k-to-i)))
k-to-i))
(cf-iter2 (+ k ) ))
(define (tan-cf x k)
(/ (cont-frac-i (lambda (i) (* x x))
(lambda (i) (- (* i) ))
k)
x))