昔プログラマの数学の第一版のKindle 版を購入していて半分くらいまで読んだ形跡があったけど、また最初から読み返した。今は第二版が出版されていて、機械学習に向けてのコンテンツが追加されたみたいで気になる。でも、すぐに機械学習の勉強をするわけではないのでひとまず我慢。

僕は大学受験をしていないので、本気で数学をやってたのは高校の最初くらいまで。それ以降はだんだん落ちぶれていってなんとか単位をとれるレベルでしかなかった。

「プログラマの数学」に書かれていることの半分くらいは大学の講義で一通り勉強していたが、当時は単位のためにやっていた感じがあるので復習も兼ねて読んでみることにした。

感想

さすが数学文章作法を書いてらっしゃる結城先生。文章がわかりやすかった。

全ての章で、大きな問題を小さい問題にして、それを一般化して大きな問題を解くという構成になっている。 受験勉強みたいに公式を押し付けるのではなく、その公式を導く過程・考え方も順序良く書かれているので本質を理解しやすい。

「対角線論法」がすぐに理解できなかった。最初、対角線上に取ってきた数字に1を足した整数列が必ずその表に含まれてないってどう証明するんだ…って思ってすごい悩んだ。けど、その各行にだけ注目した時に「必ず1箇所は異なっている」ってことだけを意識すればよかったんだってことに気づいて理解できた。まあ、本文中に書いてある文章そのままなんだけど、なぜかそのままじゃなくて独自の解釈で理解しようとしてわけわからなくなったようだ。

この本に書かれている内容を知らなくてもプログラムは書けると思う。だけど、「もれ・だぶり」は if文そのものだし、テストケースを作る時にも役に立つかもしれない。再帰の考え方はそのまま使えるし、指数的爆発も計算量のオーダーの理解につながる。

小手先の tips やツールの使い方は即効性があっていいかもしれないけど、こういう技術の根幹になる部分の理解を深めておくと強みになっていくと思う。

つぎは数学ノートの丸い三角関数を読む予定。