勉強ノート - SICP(4)

 だんだん問題が難しくなってきた。もう解けない><;
 つーかまだ30ページもいってないんだけど。

問題1.11

 n<3だったらf(n)=n。
 n≧3だったらf(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)。
 これを再帰的プロセスと反復プロセスで書いてみてっていう問題。
 地獄。

(define (f n)
    (if (< n 3) n
                (+ (f (- n 1)) 
                   (* 2 (f (- n 2)))
                   (* 3 (f (- n 3))))))

 再帰的はこんなんか。これはそのままだから簡単。
 問題は反復よ・・。どうしろっての?一日中考えたけど、全然ダメだった。とりあえず答えをネットで検索して、だいたい把握した。
 デカルト先生が「どんな難問も簡単な問題に分解し線形に分析すれば解ける」みたいなことを言ってたことを思い出せば解けたな、なんて思ったり。
 忘れた頃にもう一度解く。

問題1.12

 パスカル三角形の要素を計算する手続きを再帰的プロセスで示せ。

(define (pt r c)
    (cond ((< r 2) 1)
          ((or (< c 1) (= r c)) 1)
          (else (+ (pt (- r 1) (- c 1))
                   (pt (- r 1) c)))))

 こんなんかなー。再帰的は簡単でいいなー。

問題1.13

 意味が分からんのでパス!

というわけで

 今日の勉強はここまで!!
 本の続きも読んでるんだけど、証明とか計算量とか出てきて脳みそがついて行かない(涙
 数学的に分からないところは、どうした方がベストなんだろう??