問題1.14、問題1.15 – SICP(計算機プログラムの構造と解釈)その7
2008年11月13日
問題1.14
(define (count-change amount)
(cc amount 5))
(define (cc amount kinds-of-coins)
(cond ((= amount 0) 1)
((or (< amount 0) (= kinds-of-coins 0)) 0)
(else (+ (cc amount
(- kinds-of-coins 1))
(cc (- amount
(first-denomination kinds-of-coins))
kinds-of-coins)))))
(define (first-denomination kinds-of-coins)
(cond ((= kinds-of-coins 1) 1)
((= kinds-of-coins 2) 5)
((= kinds-of-coins 3) 10)
((= kinds-of-coins 4) 25)
((= kinds-of-coins 5) 50)))
(count-change 11)
(cc 11 5)----------------
/ \
--------------(cc 11 4)-------------- (cc -39 5)
/ \ |
---------------------(cc 11 3)----------------------- (cc -14 4) 0
/ \ |
-------(cc 11 2)-------- (cc 1 3) 0
/ \ / \
(cc 11 1) (cc 6 2) (cc 1 2) (cc -9 3)
/ \ / \ / \ |
(cc 11 0) (cc 10 1) (cc 6 1) (cc 1 2) (cc 1 1) (cc -4 2) 0
| / \ / \ | \ | \ |
0 (cc 10 0) (cc 9 1) (cc 6 0) (cc 5 1) (cc 1 1) (cc -4 2) (cc 1 0) (cc 0 1) 0
/ / | / / \ | \ \ | |
0 (cc 9 0) (cc 8 1) 0 (cc 5 0) (cc 4 1) (cc 1 0) (cc 0 1) 0 0 1
| / \ | / \ \ |
0 (cc 8 0) (cc 7 1) 0 (cc 4 0) (cc 3 1) 0 1
| / \ | / \
0 (cc 7 0) (cc 6 1) 0 (cc 3 0) (cc 2 1)
| / \ | / \
0 (cc 6 0) (cc 5 1) 0 (cc 2 0) (cc 1 1)
| / \ | / \
0 (cc 5 0) (cc 4 1) 0 (cc 1 0) (cc 0 1)
| / \ | |
0 (cc 4 0) (cc 3 1) 0 1
| / \
0 (cc 3 0) (cc 2 1)
| / \
0 (cc 2 0) (cc 1 1)
| / \
0 (cc 1 0) (cc 0 1)
| |
0 1
4
スペースとステップ数の増加の程度は、ということだが、よくわらない。
答えを見てもピンとこない…(-_-;)
問題1.15
(define (cube x) (* x x x))
(define (p x) (- (* 3 x) (* 4 (cube x))))
(define (sine angle)
(if (not (> (abs angle) 0.1))
angle
(p (sine (/ angle 3.0)))))
(sine 12.15)
(p (sine 4.05))
(p (p (sine 1.35)))
(p (p (p (sine 0.45))))
(p (p (p (p (sine 0.15)))))
(p (p (p (p (p (sine 0.05))))))
(p (p (p (p (p 0.05)))))
(p (p (p (p 0.1495))))
(p (p (p 0.4351348)))
(p (p 0.9758468))
(p -0.7895653)
-0.3997937
a. p
が作用させられた回数は 5回
b. 手続き sine
の生成するプロセスが使うスペースとステップ数の増加の程度は、ということだが、こちらもよくわからない…
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542