当前位置: 代码迷 >> 综合 >> SICP 1.38
  详细解决方案

SICP 1.38

热度:16   发布时间:2023-09-29 12:37:24.0

先确定Ni和Di的值:

(define (N i)1)(define (D i)(if (= 0 (remainder (+ i 1) 3))(* 2 (/ (+ i 1) 3))1))

写出无穷连分式的迭代算法用于计算e的小数部分:
通过定义过程f(将N,D改为(N i),(D i)),由于该函数的参数列表为空,所以不用再外加括号带参数

(define (cont-frac N D k)(define f(lambda (x)(/ N (+ D x))))(define (try x k)(if (= k 0)x(try (f x)(- k 1))))(try 0 k))

定义e的近似值

(define (e k)(+ 2.0 (cont-frac N D k)))