关闭

SICP 练习1.7

179人阅读 评论(0) 收藏 举报
分类:

这个是改进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))
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:68592次
    • 积分:3689
    • 等级:
    • 排名:第9178名
    • 原创:315篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论