書評

数学は対話かと思わせてくれるものでした|プログラマの数学

一時期、数学を学び直していた時期があり、その一環として本書を手に取りました。元SEなので、こういう本もいいかなと思い読んでみることにしました。

本書を読んでほしい方

著者は「はじめに」で本書の主な対象読者はプログラマとしています。一般的にプログラマが本書に書かれているような数学の知識が必要かといえば必要ないと思います。ですが、より高度なプログラムを作っていきたいと思うのなら知っておいて損はないのではないかと感じました。

著者の紹介

結城浩

プロテスタントのクリスチャンです。実は本業についてはよくわかりません(すみません)。ただ、ワタシ的には「数学ガール」シリーズの著者でああることは知っています。「数学ガール」シリーズは数学に挫折した人にもわかりやすい書き方をしており、何よりも数学に引き込む書き方をされています。また、プログラム関連の著書も多数あります。

そのような方が書かれた本ですので、本書の内容は著者のバックグラウドに裏打ちされたものとなっていますので、信頼性は高いものと思います。

構成と読みやすさ

本書は以下のような構成になっています。数学の書籍ですが、数式などはできる限り使わず図や表で説明されていますのでわかりやすいです。同様に、プログラムについて知らなくても内容を理解することは可能だと思います。

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

シンプルなルール

第1章でゼロ(0)について説明しています。なぜゼロ(0)が存在するのか、初めて理解したように思います。それは

パターンを作り出し、規則をシンプルにまとめる

ということだというのです。ゼロ(0)を使うことによって、「何もない」ということを明確にし、ルールをシンプルにすることができるといっています。特に「薬効がない薬」の例はわかりやすかったです。

一般化する

一般化することも数学の一つの特徴であることも語られています。多くの事例から一つのルールを見つけ出す(一般化)。新たな事例に当てはめてみるという流れでしょうか。こう考えると一般社会においても利用できる考え方と思いました。

数学は対話

本書では各章の前後に先生と生徒の会話が出てきます。その最後に出てきた言葉に以下のようなものがあります。

数式は、複雑なことを正確に伝えるための言葉ですから

うまく説明できないのですが、数学とは何かを考えた時これが一番フィットするように感じました。ルールを作ることや一般化すること、他の章にかかれていることもビジネスの場や一般社会でも扱われていることが出てきます。数式はひとつの共通言語として他の人と情報をやりとりするための手段なのではないかと感じました。

まとめ

本書はとてもわかりやすく説明されているのですが、いざワタシが内容を説明しようとするとうまくできません。著書には

説明できないのは、その問題の心臓をつかんでいなっからでしょう

といわれてしまいそうです。

本書は「プログラマの数学」というタイトルがついていますが、プログラマでなくとも役立つことは多数あると思います。それをどう活かせるかは読者の問題に対する取り組み次第なのではないかと思いました。

著者の書籍で読んだのは、まだ2冊めなのですがとても説明がわかりやすなと感じました。