こんにちは、@yshr10icです。
アルゴリズムを基礎から勉強し直したかったのと、第5章「問題解決のための数学的考察」が気になったので、本書を購入しました。
(2024/11/21 00:57:45時点 Amazon調べ-詳細)
本書のポイント
本書のポイントとして、著者の方が以下にまとめております。
「アルゴリズム×数学」本の特徴を 1 枚にまとめてみました。ぜひご活用ください。 pic.twitter.com/1bCIGhqybS
— E869120@ICPC世界大会 (4/13-19) (@e869120) December 29, 2021
個人的にポイントだと思ったところは以下のとおりです。
- 数学の基礎から学び直せる
- Pythonのコード例が用意されている(他の本だとC++のコード例が多いイメージ)
- 問題をどのように解いていけば良いのかの考え方を学ぶことができる
注意点として、アルゴリズムの基礎を学べる本なので、網羅的にアルゴリズムが説明されているわけではなりません。例えば、ソートアルゴリズムについては選択ソートとマージソートについて詳細に説明されていますが、挿入ソートやクイックソートなどに関しては2〜3行のみの簡単な説明となっています。そのため、本書を読んだ後にもう少し網羅的に勉強できる本でアルゴリズムについて勉強すると良いと思いました。
(2024/11/21 00:57:45時点 Amazon調べ-詳細)
本書を読んでみて
本書の目次は以下のとおりです。
- 第1章 アルゴリズムと数学の密接なかかわり
- 第2章 アルゴリズムのための数学の基本知識
- 第3章 基本的なアルゴリズム
- 第4章 発展的なアルゴリズム
- 第5章 問題解決のための数学的考察
第1章ではアルゴリズムとは何なのか、なぜアルゴリズムが必要なのかについて簡潔に書かれています。章の終わりに本書をどうやって読み進めていくべきか、パターン別に記載されています。
第2章では数学の基礎知識について学び直すことができます。2進法・10進法やビット演算、様々な関数の説明があります。数学の基礎知識のある方は、本章はさらっと読むだけで良いと思います。
第3・4章ではアルゴリズムについて説明されています。素数判定法から始まり、ユークリッドの互除法、モンテカルロ法、ソートアルゴリズム、動的計画法、ニュートン法、グラフアルゴリズムなどが図を使ってわかりやすく説明されています。アルゴリズムの説明の中で計算量についてもしっかりと記載されており、複雑なものに関してはなぜその計算量になるのかが記載されているので非常にわかりやすかったです。
最後に第5章では問題解決のための数学的考察について説明されています。与えられた問題に対して、規則性を見出したり、問題を偶数・奇数に場合分けすることによって簡単な問題に変換することができる場合があります。本章ではこのような考え方について9つのTipsが紹介されています。
まとめ
本書は数学やアルゴリズムをただ説明するだけではなく、きれいに図にまとめられていたり、計算量についてしっかり説明するなど、タイトルのとおり基礎からしっかり学べる本であると思いました。
少し話は脱線しますが、本書の著者の方は現在大学1年の学生さんとのことです。ひと昔前だと「最近の若者は」と若者を下に見るような風潮もありましたが、今は「最近の若者は」非常に活躍されている方も多いので、うかうかしてられないなと思いました。それにしても大学1年生でこれだけわかりやすい本を書けるって本当にすごいですね…
(2024/11/21 00:57:45時点 Amazon調べ-詳細)
その他おすすめの本
(2024/11/21 00:57:45時点 Amazon調べ-詳細)
(2024/11/21 00:59:14時点 Amazon調べ-詳細)