SICP题解----第1.1节练习
来源:互联网 发布:淘宝雨晴家有假货吗 编辑:程序博客网 时间:2024/05/02 02:55
第1.1节的练习包括习题1.1到1.8
其中习题1.1--1.6在构造过程抽象的第一节已经给出。
下面给出练习1.7和练习1.8的题解。
练习1.7
首先观察课本上的程序的问题.
可以发现,对于特别小的数,比如 0.00009 ,书本给出的 sqrt 并不能计算出正确的答案; 而对于特别大的数,因为实现的小数精度不足以表示两个大数之间的差,所以 sqrt 会陷入死循环而无法得出结果。
要避免这一错误,我们按照练习所说,对 good-enough? 进行修改:不再检测猜测值 guess 的平方与 x 之间的差,而是检测新旧两次猜测值之间的比率,当比率变化非常小时,程序就停止 improve 。
新的 good-enough? 定义如下:
(define (good-enough? old-guess new-guess x) ; old-guess*newguess/x -1 (< (abs (- (/ (* old-guess new-guess)x) 1))
结果如下:
练习1.8
只需简单修改牛顿法求平方根即可。
1 0
- SICP题解----第1.1节练习
- 【SICP练习】1 练习1.1-练习1.5
- SICP 练习1.11
- SICP-练习2.1
- SICP-练习2.17
- SICP-练习2.34
- SICP 练习1.7
- SICP 练习1.9
- SICP 练习1.16
- SICP 练习1.17
- SICP 练习1.18
- SICP 练习1.19
- SICP 练习1.28
- SICP 练习1.32
- SICP 练习1.43 repeated
- sicp 练习2.4
- sicp练习2.6
- 【SICP练习】2 练习1.6
- 处女男学Android(三)---Handler简介以及初步应用
- 什么是Shader
- 使用段错误产生的核心转储文件进行调试
- mysql 数据库导出 导入
- JavaScript:undefined!=false之解 及==比较的规则
- SICP题解----第1.1节练习
- 信号屏蔽字
- 新手上路之opencv神经网络有监督学习分类
- 学好编程的捷径??
- [hdu 5032]2014北京网络赛Always Cook Mushroom 离线线段树/树状数组
- JFreeChart 实现各种数据统计图(柱形图,饼状图,折线图)
- android frameworks的按钮监听
- hadoop节点故障解决一例
- android坐标