SICP 习题2.9 区间宽度
来源:互联网 发布:网络运营商 编辑:程序博客网 时间:2024/05/29 11:56
可以看出add和sub之后的区间是之前两个区间的区间宽度之和,而mul和div是不确定的。
(define (add-interval x y) (make-interval (+ (lower-bound x) (lower-bound y)) (+ (upper-bound x) (upper-bound y))))(define (mul-interval x y) (let ((p1 (* (lower-bound x) (lower-bound y))) (p2 (* (lower-bound x) (upper-bound y))) (p3 (* (upper-bound x) (lower-bound y))) (p4 (* (upper-bound x) (upper-bound y)))) (make-interval (min p1 p2 p3 p4) (max p1 p2 p3 p4))))(define (div-interval x y) (mul-interval x (make-interval (/ 1.0 (lower-bound y)) (/ 1.0 (upper-bound y)))))(define (sub-interval x y) (make-interval (- (lower-bound x) (upper-bound y)) (- (upper-bound x) (lower-bound y))))(define (width-interval z) (/ (- (upper-bound z) (lower-bound z)) 2.0))(define make-interval cons)(define lower-bound car)(define upper-bound cdr)(define print-interval (lambda (z) (newline) (display (lower-bound z)) (display " ~ ") (display (upper-bound z))))(define a (make-interval 1 2))(define b (make-interval 3 4))(newline)(display "a : ")(display (width-interval a))(newline)(display "b : ")(display (width-interval b))(print-interval (add-interval a b))(newline)(display "add : ")(display (width-interval (add-interval a b)))(print-interval (mul-interval a b))(newline)(display "mul : ")(display (width-interval (mul-interval a b)))(print-interval (div-interval a b))(newline)(display "div : ")(display (width-interval (div-interval a b)))(print-interval (sub-interval a b))(newline)(display "sub : ")(display (width-interval (sub-interval a b)))
0 0
- SICP 习题2.9 区间宽度
- SICP 习题 (2.9)解题总结:区间的宽度和区间加减乘除的关系
- SICP 习题2.8 区间减法
- SICP 习题 (2.7) 解题总结 : 定义区间数据结构
- SICP 习题 (2.8) 解题总结:区间的减法
- SICP 习题 (2.11)解题总结:区间乘法的优化
- SICP 习题 (2.13)解题总结:区间计算误差
- SICP习题
- SICP 习题2.10 区间除法 被除区间横跨0的问题
- SICP 习题 (2.10)解题总结: 区间除法中除于零的问题
- SICP 习题 (2.12)解题总结 :区间的不同实现方式
- SICP 习题 (2.14)解题总结:区间误差导致的问题
- SICP 习题 (2.15)解题总结:区间误差的深入思考
- SICP 习题 (2.16)解题总结:避免误差的区间计算系统
- SICP 习题2.7 实现区间的lower-bound 和 upper-bound
- sicp 第一章习题试做
- sicp 第一章 习题
- sicp 2.2 习题
- 排序中的两种非比较排序—计数和基数排序
- 梳理hibernate篇-原理及缓存机制
- iOS 应用发布流程
- Debian8.5安装编译GCC6.1.0笔记
- 卸载系统应用&动画气泡特效&创建守护服务&进程管理(ActivtyManager&提供批量操作)&桌面小控件AppWidget
- SICP 习题2.9 区间宽度
- 黑马程序员——Java基础---包、内部类、匿名内部类
- Android View工作机制(1)—基本知识点
- iOS 解决button设置背景图片的时候拉伸变形的问题
- Java线程队列
- 梳理mybatis-原理篇
- C++实验7
- 24、jdbc入门3
- 最近学习的内容