技術 ブログ

読書メモ:問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本



問題解決力を鍛える!アルゴリズムとデータ構造』を読んでみたところ、理解があやしい部分があったため、入門者にやさしいと評判の本書を購入しました。

本書では、アルゴリズムに必要な数学の基礎知識から学ぶことができ、実数・有理数・整数の説明に加えて、プログラミングで頻出する二進法や論理演算などが扱われています。高校数学をある程度学んでいれば、復習しながら理解できる内容になっています。また、カラー印刷で図が多く用いられているため、視覚的にも理解しやすく工夫されていると感じました。

続く章では、素数判定法、ユークリッドの互除法、確率と期待値、モンテカルロ法、ソートと再帰、動的計画法など、基本的なアルゴリズムが解説されています。個人的には、素数判定法や統計的アルゴリズムであるモンテカルロ法が特に勉強になりました。

さらに発展的な章では、幾何学的なアルゴリズム、累積和、ニュートン法、エラトステネスのふるい、グラフアルゴリズム、効率的な剰余計算、行列の累乗などを扱っています。数学的な内容から、アルゴリズムでなじみ深いテーマまで幅広く扱われており、どれも非常に有用だと感じました。

最後の「問題解決のための数学的考察」では、これまでの内容を踏まえ、さまざまな問題に対して数学的な洞察や一般化を行うことで、計算量の少ない解法を導く手法が紹介されています。

総じて、『問題解決力を鍛える!アルゴリズムとデータ構造』と重なる部分もありますが、本書にしか載っていない数学的アプローチのアルゴリズムも多く、非常に学びが多い内容でした。

扱う分野が広いため、アルゴリズムを専門的に深く学ぶ予定がなくても役に立つ知識が多く、プログラミングに携わる人すべてにおすすめできる本だと思います。

写経はしませんでしたが、サンプルプログラムが非常に短いため、写経しながら読み進めても負担は少なそうです。『問題解決力を鍛える!アルゴリズムとデータ構造』の写経が終わったら、本書の気になるサンプルプログラムも写経し、実行結果を確かめてみようと思います。

コメント投稿フォーム

メールアドレスが公開されることはありません。 が付いている欄は必須項目です