連分数の値を求めるcont-fracを定義します。
ただし、これは実際にはk項有限連分数を計算する。
(define (cont-frac n d k) (define (sub-cont-frac n d k ans) (if (= k 0) ans (sub-cont-frac n d (- k 1) (/ (n k) (+ (d k) ans))))) (sub-cont-frac n d k 1))
N_i, D_iのすべてが1だと、これは1/黄金比に収束するらしい。
gosh> (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) 9) 0.6179775280898876 gosh> (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) 10) 0.6180555555555556 gosh> (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) 11) 0.6180257510729613
4桁の精度を得るためには、kは11以上じゃないとだめぽ?