勉強ノート - 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
意味が分からんのでパス!
というわけで
今日の勉強はここまで!!
本の続きも読んでるんだけど、証明とか計算量とか出てきて脳みそがついて行かない(涙
数学的に分からないところは、どうした方がベストなんだろう??