sicp 1.39

连分数求tan x

 

(define (cont-frac n d k)
  (define (iter k result)
    (if (= k 0)
        result
        (iter (- k 1) (/ (n k) (+ (d k) result)))))
  (iter k 0))

(define (tan-cf x k)
  (define (n i)
    (- (* x x)))
  (define (d i)
    (- (* 2 i) 1))
  (- (/ (cont-frac n d k) x)))

(define pi 3.14159)

(tan-cf (/ pi 6) 10)
(tan-cf (/ pi 4) 10)
(tan-cf (/ pi 3) 10)
(tan-cf (/ pi 2) 10)

 

0.5773496795031555
0.9999986732059835
1.7320472694545728
753695.9944353988

你可能感兴趣的:(SICP)