SICPを読む(41) 問題 2.9 区間の幅
むむ・・・。全然わからんので、素人くさいSICP「独」書会の解答を見た。
- SICP memo: 問題2.9
- 素晴らしい。
要するに、「幅(区間a) + 幅(区間b)」と、「幅(区間a + 区間a)」が一緒かどうかって事か。
僕は具体例を示してみる。
まずは、幅の定義する。幅 = (上限+下限)/2なので、
(define (width-interval x) (/ (+ (upper-bound x) (lower-bound x)) 2))
例を示すために、区間a,bを定義する。
区間a = 1..3、区間b = 4..6としたとき、幅(a)は2, 幅(b)は5となる。
(define a (make-interval 1 3)) (define b (make-interval 4 6)) (width-interval a) ; 2 (width-interval b) ; 5
比較してみる。
(+ (width-interval b) (width-interval a)) ; 7 (width-interval (add-interval b a)) ; 7 (- (width-interval b) (width-interval a)) ; 3 (width-interval (sub-interval b a)) ; 3 (* (width-interval b) (width-interval a)) ; 10 (width-interval (mul-interval b a)) ; 11 (/ (width-interval b) (width-interval a)) ; 5/2 (width-interval (div-interval b a)) ; 11/3
和と差の場合は、「幅(区間a) + 幅(区間b)」と、「幅(区間a + 区間a)」は同様の値となる。
しかし、乗算と除算ではこれが成り立たない事がわかった。
僕もカッコいい証明を示せるようになりたいなぁ・・・(数学ガールの影響)