SICP 练习1.7

这个是改进good-enough?函数,容易想到,guess (improve guess x) 分别是上一次迭代和下一次迭代的结果,那么就可以测量这个变化来改进good-enough?函数

(define (sqrt-iter guess x)
  (if (good-enough? guess (improve guess x))
    guess
    (sqrt-iter (improve guess x) x)))

(define (improve guess x)
  (average guess (/ x guess)))

(define (average x y)
  (/ (+ x y) 2))

(define (good-enough? guess x)
  (< (/ (abs (- guess x)) guess) 0.00001))

(define (square x) (* x x))

(define (sqrt x)
  (sqrt-iter 1.0 x))

(sqrt 9)
(sqrt (+ 100 37))
(sqrt (+ (sqrt 2) (sqrt 3)))

(square (sqrt 1000))
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NMfloat/article/details/51550455
个人分类: SICP
上一篇SICP 牛顿法求平方根
下一篇SICP 练习1.8 求立方根
想对作者说点什么? 我来说一句

SICP 解题集

2013年11月26日 7.61MB 下载

没有更多推荐了,返回首页

关闭
关闭