另外一种形式的连分式
a(n)=a(n-1)/{a(n-1)+C} (C为常数,a(1)=100000)
变形为
1/a(n)=1+C/a(n-1)
Go
b(n)=1/a(n)
GO
b(n)+A=C*{ b(n-1)+A }
Go
A=1/C-1
假设C=1/3,则A=-3/2
Go
形式上虽然为连分式,但因为系数小于1,所以a(n)的极限接近于1/-A
从上可以发现两者的关系,目前写程序验证:
(defun expr (n)
(if (eq n 1)
1.0
(/ (expr (1- n) )
(+ (expr (1- n) )
1/3))))
注意上面算法的时间复杂度为指数级的,所以采用下面的。
(defun expr (n)
(if (eq n 1)
100000.0
(/ 1.0
(+ 1
(/ 1/3
(expr (1- n)))))))
(expr 1000)
其中a(1)=100000也不影响最终的结果。