数学が教えてくれるもの – 読書 – 数学ガール

アルゴリズムについて書かれている本を探していたら、以下の記事で「数学ガール 乱択アルゴリズム(数学ガールシリーズ 4)」がオススメされているのを発見。

アルゴリズムの勉強のしかた – きしだのはてな

すごく読みたくなったんですが、どうせならシリーズの最初から読みたいと思い、まずはシリーズ1作目の本書を手にとって読んでみました。

数学ガール (数学ガールシリーズ 1)
数学ガール

目次

  • 第1章 数列とパターン
  • 第2章 数式という名のラブレター
  • 第3章 ωのワルツ
  • 第4章 フィボナッチ数列と母関数
  • 第5章 相加相乗平均の関係
  • 第6章 ミルカさんの隣で
  • 第7章 コンボリューション
  • 第8章 ハーモニック・ナンバー
  • 第9章 テイラー展開とバーゼル問題
  • 第10章 分割数

懐かしい数学と久しぶりの再会

本書は、主人公の「僕」と二人の女子高生が、高校生ならではの甘酸っぱい青春ライフを送りながら、様々な数学の問題に挑戦していく物語。

本書が扱うのは主に数列や級数など。主人公たちの会話の間にたくさんでてくる、数式の展開や変形を読み解きながら、ストーリーと数学の面白さを同時に味わう事ができます。

僕自身、数学に触れたのはとても久しぶりのこと。高2のときに理系コースを選んで、大学も理系に進んで、それなりに数学については勉強してきたつもりだけど、社会人になってからは数学とは疎遠の生活を送ってきました。仕事でプログラムを書くときに数学が必要になることもあったけど、せいぜい三角関数程度のもの。

そんなこともあってか、本書を読むことで、なんだか懐かしい数学と再会したような、そんな感覚に浸ることができました。昔勉強していたことを次第に思い出していく感覚や、当時はわからなかったこと、知らなかったことを理解できる感覚。それがとても心地よくて、どんどん読み進めることができました。

わからないことについて考えぬくことの大切さ

与えられた数式を、色々な試行錯誤をもとに展開・変形しながら、数式の性質やそれが持つ意味について、徐々に読み解いていく登場人物たち。よくわからない数式も、少し見方を変えたり、他の人と議論したりすることで、新たな側面が見えてきます。

わからないことは、わからないままにしない。わかるまで、しっかり考えぬく。そういったことの大切さを実感。自分自身の日常生活や仕事のなかでもそう。わからないこと、つまり問題にぶつかった時にどうするかって、何かに取り組む上でとても重要な事だと思います。

そんな時の自分の振る舞い方について、何かヒントを得たような気がしました。主人公たちの用に、あきらめずにもっとしっかり考え抜かないと。そんな風に思いました。

プログラミングと数学は似ている

同じ問題や数式でも、表現の仕方は何通りもあります。視点を変えたり、解く方法を変えたりすることで、姿ががらりと変わります。

プログラミングにも数学と似ている部分があります。例えば、何かを実現する関数を実装する場合。一言で「フィボナッチ数列を出力する関数」と言っても、実装の仕方には何通りもあります。アルゴリズムが変わればコードも変わるし、同じアルゴリズムでも書く人が違えばコードも違うものになります。

固定されている仕様のなかで、コードを実装する感覚。仕様を満たすコードが書けたあとに、計算量が少ないコード、可読性が高いコードにリファクタリングしていく感覚。そういったものと、数式を展開・変形していく感覚が、なんだかとても似ているような気がしてなりません。

あるものを、必要に応じて適切な形に変形していく、パズルのようなプロセスが、数学とプログラミングの共通点なのかな。 「数学はプログラミングと繋がる部分がある」という言葉をどこかで聞いたことありますが、その根拠の一つについて、実際に体験することができたように思います。

色々なことを気付かせてくれる素晴らしいツール

仕事で直接数学に触れることはほとんど無いんですけど、数学って実は色々なことを気付かせてくれる素晴らしいツールなのではないでしょうか。久しぶりに再会した数学に、色々なことを学ばせてもらいました。続編ももちろん読もうと思っています。

きっと数学が苦手、あまり詳しくない人でも何か得るものがあるように思います。僕自身そうだったので。だからオススメ。

それでは以上です。ありがとうございました。