議事録(第三回目)

今日の勉強会で、第一章の第二節までを読み終えました。この第二節は数学的な要素が多く掲載されていて、いろんな意味で良い刺激を受けることができました。以下に、印象に残った事柄をまとめます。

  • フィボナッチ数列のn項を対数ステップで求めたい
    • 問題1-19
    • 工夫せずにコードを書いたら指数的なステップ数になってしまう
    • ちょっとした工夫でnに比例するステップ数になる
    • さらに工夫を施せば対数ステップにまで効率化することが可能
    • より良いアルゴリズムを生み出すためには、数学的な考えが必要になる
    • 数列の性質をつかまえることが大事
    • 閉じた式を見つけるための試行錯誤
  • 基本的な概念を無意識のうちに理解できる感覚
    • javaの簡単なループ処理を書くのに、いちいち立ち止まって考えてしまうような理解度では、本質的な問題を解決するコードは書けない
    • これと同じで、本書にでてくるLispの基本的な処理記述に手間取ってしまうようでは、今後の問題には取り組めない
    • 数学的な概念についても同様

数学の本当に基礎的な素養に関しては、一刻も早く身につけたいと思っています。その方が、より楽しく本書と向き合えるような気がするからです。先週末に「数学ガール」を読みふけりながら、数学そのものに対する面白さみたいなものを感じられたことも、このように思った要因の一つです。まずは、自分の中学・高校時代の怠慢を巻き返したいと考えていて、それをやるための書籍を早速amazonに発注しました。こんどの週末にでも一気に読み進めてみるつもりです。