実践力をアップする Python によるアルゴリズムの教科書
ジッセンリョクヲアップスル パイソンニヨルアルゴリズム ノ キョウカショ
- 著者:
- クジラ飛行机(クジラヒコウヅクエ)
- 出版社:
- マイナビ出版
- 出版日:
- 2023年06月27日
- ISBN:
- 9784839981914
- シリーズ:
- Compass Books シリーズ
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
本書は、Python を使って、定番のアルゴリズムから、人工知能 (AI) や自然言語処理に関するアルゴリズムまで、広く学べる書籍です。
本書は、プログラミングのスキルを向上させたい人に向けて書かれた本です。レベルに合わせて少しずつ読み進めると良いでしょう。紹介するアルゴリズムは、章が上がるごとに難しくなっていきますが、興味のあるアルゴリズムを選んで読んでも問題ないようになっています。
Chapter 1 ではなぜアルゴリズムを学ぶと良いのかを紹介しています。スキルアップに対して、あまりモチベーションが上がらないときに読むと良いでしょう。また、計算量の説明や、Python のインストールやターミナルの使い方、プログラムのテストの書き方も紹介しています。
そして、Chapter 2 以降で実際のアルゴリズムを解説します。Chapter 2 は基本的な制御フロー (if、for など) を利用したアルゴリズムを解説します。FizzBuzz や素数判定、シーザー暗号など、プログラミングの基礎体力をつけるのにぴったりのアルゴリズムを紹介しています。
Chapter 3 はデータ構造や再帰に注目します。アルゴリズムとデータ構造は切っても切れない関係です。基本的なデータ構造を学ぶことは、それ以降の章を読む上でも大切です。また「再帰」は高度なアルゴリズムを記述する上で欠かすことのできないテクニックです。ここでマスターしておきましょう。
Chapter 4 ではデータの検索とソートについて学びます。これらはアルゴリズムの定番です。そこには、先人が苦労して編み出した珠玉のアイデアが詰まっています。そのために、有名なソートアルゴリズムを紹介していきます。その問題解決手法やアイデアに注目しましょう。
Chapter 5 では迷路や数字パズルといった知的好奇心をくすぐる題材として、ゲーム解法アルゴリズムを学びます。探索アルゴリズムや動的計画法など、これらはさまざまな場面で活用できる覚えて得するアルゴリズムです。パズルを楽しみながらレベルアップしましょう。
そして、最後の Chapter 6 では、人工知能 (AI) や自然言語処理に関するアルゴリズムを解説します。文章の自動分類や自動生成や、手書き数字データ画像の判定などを学びましょう。昨今、AI を活用した技術や製品が世間を賑わせていますが、その基礎となるアルゴリズムを学びましょう。
技書の森解説
Python の文法をひととおり覚えたあと、プログラミングの力をもう一段上げたい人向けに、定番のアルゴリズムから人工知能 (AI) と自然言語処理のアルゴリズムまでを広く扱う本が『実践力をアップする Python によるアルゴリズムの教科書』です。著者はクジラ飛行机で、マイナビ出版の Compass Books シリーズから 2023 年 6 月に刊行されました (書店発売日は 2023 年 6 月 27 日)。版元の紹介によると、扱うアルゴリズムは章が進むごとに難しくなる一方で、興味のあるアルゴリズムを選んで読んでも問題ない作りです。著者は日本語プログラミング言語「なでしこ」などの作者で、2004 年に IPA 未踏ユースのスーパークリエイターに認定されたと版元のプロフィールにあります。
全 6 章の構成、FizzBuzz から手書き数字の判定まで
Chapter 1「なぜアルゴリズムが重要なのか」は、アルゴリズムの評価手法と計算量と O 記法を説明したうえで、Python のインストール、ターミナルの使い方、Python で手軽に書けるテスト、制御構文と基本データ型のまとめまでを置き、学ぶ準備を整えます。Chapter 2「条件分岐と繰り返しのアルゴリズム」は FizzBuzz 問題、素数判定とエラトステネスのふるい、コインの組み合わせ問題、N 進数表現と変換、シーザー暗号や XOR 暗号、カードのシャッフルを扱います。Chapter 3「データ構造と再帰について」はリスト、スタック、キュー、リングバッファーから、逆ポーランド記法、ハノイの塔、ハッシュ関数、ハッシュ木 (マークル木) へ進みます。Chapter 4「定番アルゴリズム (データの検索とソート)」はソートと探索のほか、バイナリデータのテキスト表現、データの圧縮、画像に関するアルゴリズムを含みます。Chapter 5「難解パズルで学ぶアルゴリズム」は迷路の自動生成と自動探索、ナンプレ、15 パズル、ナップサック問題、疑似乱数生成を取り上げ、Chapter 6「人工知能 (AI)・自然言語処理のアルゴリズム」はレーベンシュタイン距離と n-gram による文章の類似度、単純ベイズ分類器による文章のカテゴライズ、マルコフ連鎖を利用した文章生成、k-means 法によるクラスタリング、k 近傍法による手書き数字の判定で締めくくります。
題材の手触りで、考え方を身につける
アルゴリズムの学習でつまずきやすいのは、手順そのものより、なぜその手順で速くなるのか、なぜ正しく答えが出るのかを自分の言葉で説明できない点です。本書の目次は、素数判定を試し割り法から始めてエラトステネスのふるいで最適化する、フィボナッチの計算とハノイの塔を 再帰 で解く、というように、身近な題材の上で素朴な手順から工夫した手順へ進む並びになっています。版元の紹介によると Chapter 5 では探索アルゴリズムや 動的計画法 のように、さまざまな場面で応用できる手法をパズルを題材に学びます。Chapter 6 は機械学習ライブラリの使い方ではなく、文章の類似度や分類、生成、クラスタリングの土台にある計算をアルゴリズムとして読む章と読めます。
向いている読者と、別の本を選ぶほうがよい目的
版元は本書を、プログラミングのスキルを向上させたい人に向けた本と案内しています。Chapter 1 に制御構文と基本データ型のまとめがあるとはいえ、Python で短いプログラムを書いて動かせる段階にあるほうが、各章の題材に集中できます。一方で、競技プログラミングで出題の型ごとに解法を網羅したい人や、計算量 の証明を数学的に積み上げたい人は、目的に特化した本を併せて選ぶほうが近道です。アルゴリズム本の選び方は アルゴリズム本ガイド にもまとめています。
暗号、圧縮、迷路、パズル、文章の自動分類と、題材の幅が広いのが本書の持ち味です。教科書的な定番を押さえつつ、手を動かして結果が目に見える題材で練習したい人にとって、興味のある章から開いて少しずつ読み進められる一冊です。
言及した記事 (4 件)
この本に興味がある方におすすめ
関連する本
クジラ飛行机 の他の書籍
関連記事
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。
ChatGPT に聞けば済む時代に、あえて本を開く理由
生成 AI で何でも聞ける時代に、技術書を読む意味はあるのか。AI の回答と書籍の知識の決定的な違いを掘り下げ、両者の使い分けを提案します。