首页 > 代码库 > SICP 习题 (2.10)解题总结: 区间除法中除于零的问题

SICP 习题 (2.10)解题总结: 区间除法中除于零的问题

SICP 习题 2.10 要求我们处理区间除法运算中除于零的问题。


题中讲到一个专业程序员Ben Bitdiddle看了Alyssa的工作后提出了除于零的问题,大家留意一下这个叫Ben的人,后面会不断出现这个人,只要是这个人提到的事情一般是对的,他的角色定位是个计算机牛人,不过是办公室经常能看到的那种牛人,后面还有更牛的。


对于区间运算的除于零的问题,处理起来也比较简单,只需要判断除数是不是为零,除数为零就报错。对于一个区间来讲,所谓为零就是这个区间横跨0,再直接一点讲就是起点是负数,终点是正数。


理解了以后写代码就很简单了:


(define (div-interval x y)
  (if (< (* (upper-bound y) (lower-bound y)) 0)
      (error "Div 0:" y))
  (mul-interval x
		(make-interval (/ 1.0 (upper-bound y))
			       (/ 1.0 (lower-bound y)))))



好,解题结束。


SICP 习题 (2.10)解题总结: 区间除法中除于零的问题