Di依次为1、2、1、1、4、1、1、6、1、1、8、。。。,当i每隔3个是个偶数递增,我们得到Di的公式
然后写出di的过程
(lambda (i)
(if (= (remainder (+ i 1) 3) 0 ) (* (/ (+ i 1) 3) 2) 1))
整理得出完整过程
#lang racket
(define (cont-frac n d k)
(define (recursion a)
(if (= a k) (/ (n a) (d a))
(/ (n a) (+ (d a) (recursion (+ a 1))))))
(recursion 1)
)
(define (cal-e k)
(+ 2 (cont-frac (lambda (i) 1.0)
(lambda (i)
(if (= (remainder (+ i 1) 3) 0 ) (* (/ (+ i 1) 3) 2) 1))
k)))
(cal-e 100)
运行结果为e的近似值
2.7182818284590455