SICP問題1.45
書いたの間違って消しちゃったので、答えだけ。
n 乗根の不動点を収束させるのに必要な平均緩和の回数は
2^a <= n < 2^(a + 1) の a になることが試してみると分かる。
整数の割り算のでっちあげ
(define (int-div x y) (if (= (remainder x y) 0) (/ x y) (/ (- x (remainder x y)) y)))
n剰根を求める関数
(define (n-root x n) (define (average-damp-count m) (if (< m 2) 0 (int-div m 2))) (fixed-point ((repeated average-damp (average-damp-count n)) (lambda (y) (/ x (expt y (- n 1))))) 1.0))