首页 > 代码库 > SICP 习题 (1.39)解题总结

SICP 习题 (1.39)解题总结

SICP 习题1.39沿着习题1.37 1.38的方向继续前行,要求我们根据德国数学家J.H.Lambert的公式定义tan-cf过程,用于计算正切函数的近似值。


J.H.Lambert的公式如下:



可以发现,这个和之前的无穷连分式是一样一样的,所不同的就是N是一个变量,不是固定数值。


不过这个已经难不倒我们啦,可以从公式中发现,除了第一个N是x,其它的N都是x平方,


D对应的数值是1,3,5,就是所有奇数,以数字n为下标的话可以通过((n * 2)-1) 得到。


最后直接定义以下过程搞定:


(define (tan-cf x k)
  (cont-frac 
   (lambda (i)
     (if (= i 1) 
	 x
	 (* x x)))
   (lambda (i)
     (- (* i 2.0) 1))
   k))