SICP 练习1.7

原创 2016年06月01日 00:06:10

这个是改进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))
版权声明:本文为博主原创文章,未经博主允许不得转载。

SICP练习题 1.7~1.8

 1.7 mysqrt的改进改善精度控制的细节, 判断如果连续两次迭代的猜测值相差很小, 就退出. 实验表明达到效果了, 大数和小数都得到了很大改善.美中不足是我还不会用变量, get-guess-r...
  • dulao5
  • dulao5
  • 2011年03月12日 15:22
  • 273

SICP 1.7-1.8 PLT Scheme实现

1.7 依然是求平方根,单要求更加精确 Exercise 1.7. The good-enough? test used in computing square roots will not be v...

SICP 习题 (2.1.4)拓展练习——初论

我只讨论练习2.15和2.16,前面的较简单。 2.15和2.16不能孤立的看,首先我们想想这个所谓区间运算的实质是什么? 没错,集合 我们重新定义加法: \qquad对于集合AA,BB \...

【SICP练习】108 练习3.21

练习3-21原文Exercise 3.21. Ben Bitdiddle decides to test the queue implementation described above. He t...
  • NoMasp
  • NoMasp
  • 2015年03月25日 11:09
  • 1126

【SICP练习】98 练习2.73

练习2.73a小题,这是由于Scheme对数字、变量的直接规定,前者会被当作数值类型,后者则会被当作符号类型。因此没必要将这两个谓词添加到数据导向分派中了。如果给数值类型或者符号类型加上一个标志,在g...
  • NoMasp
  • NoMasp
  • 2015年03月06日 12:16
  • 2169

【SICP练习】44 练习2.3

 练习2.3 我们并不必急于写出点什么,先来回过头看看书吧。第56页说到了一种称为按愿望思维的强有力的综合策略。在这道题里,我们就可以假设已经写好了能够表示矩形的代码,以及能够求矩形长...
  • NoMasp
  • NoMasp
  • 2015年02月17日 20:09
  • 1807

【SICP练习】31 练习1.37

练习1.37 根据题目中的意思通过观察得到k项有项连分式的一种表达方式: f=N1/(D1+(N2/(…+Nk/Dk))) 这个式子可以不断展开,但如果我们把每一个”+”后面的式子记作T(i)。...
  • NoMasp
  • NoMasp
  • 2015年02月17日 19:59
  • 1159

【SICP练习】16 练习1.22

练习1.22 这道题中需要判断素数的部分书中都已经列出来了,但要求是要找出多个素数,因此我们要有一个能够不断求素数的函数。在C等语言中我们可以通过一个for循环来轻易地求出来,在Scheme中我们完...
  • NoMasp
  • NoMasp
  • 2015年02月07日 10:26
  • 1813

【SICP练习】105 练习3.5-3.6

练习3-5原文Exercise 3.5. Monte Carlo integration is a method of estimating definite integrals by means ...
  • NoMasp
  • NoMasp
  • 2015年03月11日 18:08
  • 2563

【SICP练习】110 练习3.23

练习3-23原文Exercise 3.23. A deque (“double-ended queue”) is a sequence in which items can be inserted ...
  • NoMasp
  • NoMasp
  • 2015年03月26日 11:57
  • 1717
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SICP 练习1.7
举报原因:
原因补充:

(最多只允许输入30个字)