開発環境
- OS X Lion - Apple(OS)
- Emacs、BBEdit - Bare Bones Software, Inc. (Text Editor)
- プログラミング言語: MIT/GNU Scheme
計算機プログラムの構造と解釈(Gerald Jay Sussman(原著)、Julie Sussman(原著)、Harold Abelson(原著)、和田 英一(翻訳)、ピアソンエデュケーション、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の3(標準部品化力, オブジェクトおよび状態)、3.5(ストリーム)、3.5.1(ストリームは遅延リスト)、ストリームの実装の働き、delayとforceの実装、問題 3.56、問題 3.57を解いてみる。
その他参考書籍
問題 3.56
コード(BBEdit)
sample.scm
(define S (cons-stream 1 (merge (scale-stream S 2) (merge (scale-stream S 3) (scale-stream S 5)))))
問題 3.57
n = 0, 1のときは0回。n > 1のときは、n - 1回。
memo-proc手続きによる最適化(メモ化)をしなかった場合。
n > 1のときn番目のFibonacci数を計算するときの加算の回数。
1 + (1 + 2) + … + (1 + 2 + … + ((n - 2) - 1)) + (1 + 2 + … + (n - 1))
よって、指数的に大きくなる。
0 コメント:
コメントを投稿