自然対数の底eを連分数展開で計算する
自然対数の底eといえば
ですが、これを連分数展開すると
となるそうです。面白いですね。
Schemeで書いてみました。
;;(+ 2 (/. 1 (+ 1 (/ 1 (+ 2 (/ 2 (+ 3 (/ 3 (+ 4 (/ 4 (+ 5 (/ 5 (+ 6 (/ 6 (+ 7 0))))))))))))))) (define (e) (let loop ((i 1) (f (lambda (v) (+ 2 (/. 1 v))))) (if (> i 100) (f 1) (loop (+ i 1) (lambda (v) (f (+ i (/ i v)))))))) (define (main args) (print (e)) 0)
実行すると
% gosh e.scm
2.7182818284590455
あってそう。