1.この記事を書こうと思った背景

『プログラマの数学 第2版|結城浩』(以下、本書)を読んだ。本書から学んだことを、ここに書き留めておく。

2.目次

はじめに
第1章 ゼロの物語 ―― 「ない」ものが「ある」ことの意味
第2章 論理 ―― trueとfalseの2分割
第3章 剰余 ―― 周期性とグループ分け
第4章 数学的帰納法 ―― 無数のドミノを倒すには
第5章 順列・組み合わせ ―― 数えないための法則
第6章 再帰 ―― 自分で自分を定義する
第7章 指数的な爆発 ―― 困難な問題との戦い
第8章 計算不可能な問題 ―― 数えられない数、プログラムできないプログラム
第9章 プログラマの数学とは ―― まとめにかえて
付録1:機械学習への第一歩
付録2:読書案内

3.本書全体を通しての学びや感想

ものごとの構造を見抜き、一般化する

本書は 「ものごとの構造を見抜き、一般化する」 ことについて、その大切さと方法論について事例を交えて紹介されている。

そのアプローチの一例としては、たとえばものごとを小さくみること、あるいは2分割や再帰性を見出すことなど。

読みやすい印象を抱いたこととそのワケを考える

また、とても読みやすい印象を持った。

なぜ、このような印象を抱いたのか?

それは、独自の見解を提示する前に既知の話題や身近な関連事例を提示しているからではないか?と思う。本書は、話し手がもっとも言いたい独自の主張を読み手に伝えるためのエッセンス集であるともいえるかもしれない。

さて、章ごとの読書メモを書いていたのでそちらも共有しよう。(ただし、7章以降を除く。)


4.章ごとの読書メモ

「第1章 ゼロの物語 ―― 「ない」ものが「ある」ことの意味」

「ない」ことを表現する難しさと大切さ。

e.g. 位取り

cf. 意外と知らない「ゼロ」の持つ意味と概念―あなたも「ゼロ」という数字から、知的探求、始めてみませんか?- |ニッセイ基礎研究所

「第2章 論理 ―― trueとfalseの2分割」

物事の論理は、章の副題にも挙げられている 2分割 を意識すること。また、複雑な表現は論理式の考え方を使うとシンプルになることがあるということ。

本書にその一例が紹介されている。

  • A と B の少なくともどちらか片方が true のときに true になる

というよりも、

  • A と B の両方が false のときだけ false になる

本書を読んでから物事に取り組む際、やることリストの網羅性を引き上げるために、やることの要素を否定してみたりしている。たとえば、正常処理の実装に取り組むとしたら、それがうまくいかないケース=異常処理の実装はしたほうがいいのだろうか?と考えるといった具合だ。

「第3章 剰余 ―― 周期性とグループ分け」

オセロで通信のエピソードはもっと早く読んでおきたかった。

離散数学の授業でのパリティチェックや、代数学の授業で一の位の数を求める方法を理解することに苦労したので。。

「第4章 数学的帰納法 ―― 無数のドミノを倒すには」

数学者のガウスの逸話くらいしかメモを残していなかった。

ガウスが7歳の時、算数の授業で教師が「1から100までの数字すべてを足せ」という問題を出し、生徒たちが問題を解くには相当な時間がかかるだろうと考えていたが、ガウスはわずか数秒で「5050」という解答を出し、教師を驚かせた。1から100までの数字を足していくと、1+100=101、2+99=101、…、50+51=101で、101の集まりが50個できるため、101×50=5050になるとガウスは計算したのである[2]。

cf. カール・フリードリヒ・ガウス - Wikipedia

「第5章 順列・組み合わせ ―― 数えないための法則」

なし。

「第6章 再帰 ―― 自分で自分を定義する」

大きな問題は小さく。とは聞くけどどうやって?と思っていただけに、再帰性を見出す という視点はなるほどとなった。

本書には書かれていないが、大きな問題から取り出すための切り口を言い換えるとしたら、時間軸や場所、関わる人の数など、問題の大きさを図る 尺度や単位 なのかなと思う。


5.がんばろう

本書からたくさんのことを学んだ。おそらく、本書で言われていることはこれといって目新しいものではないかもしれない。それでも著者のやさしくて、それでも核心を突いた表現はまたしてもぼくにとって大きな財産となった。

以下の著者の Tweet はことあるごとに読み返すほど、ぼくにとって大切なものだが、本書からそれと同じくらい大切な言葉や考え方を教えていただいた。

最後に、本書に書かれている著者から読者に向けた応援メッセージを取り上げたい。

このように、さまざまな知恵と工夫をこらして、人間は問題に立ち向かいます。

(中略)

あなたには、何か苦手なことはありますか?もしかしたら、そこから新しい知恵と工夫が生まれてくるかもしれませんね。