関連サイト
本書の関連ページが用意されています。
内容紹介
本書は、Pythonを使って、定番のアルゴリズムから、人工知能(AI)や自然言語処理に関するアルゴリズムまで、広く学べる書籍です。
本書は、プログラミングのスキルを向上させたい人に向けて書かれた本です。レベルに合わせて少しずつ読み進めると良いでしょう。紹介するアルゴリズムは、章が上がるごとに難しくなっていきますが、興味のあるアルゴリズムを選んで読んでも問題ないようになっています。
Chapter 1ではなぜアルゴリズムを学ぶと良いのかを紹介しています。スキルアップに対して、あまりモチベーションが上がらないときに読むと良いでしょう。また、計算量の説明や、Pythonのインストールやターミナルの使い方、プログラムのテストの書き方も紹介しています。
そして、Chapter 2以降で実際のアルゴリズムを解説します。Chapter 2は基本的な制御フロー(if、forなど)を利用したアルゴリズムを解説します。FizzBuzzや素数判定、シーザー暗号など、プログラミングの基礎体力をつけるのにぴったりのアルゴリズムを紹介しています。
Chapter 3はデータ構造や再帰に注目します。アルゴリズムとデータ構造は切っても切れない関係です。基本的なデータ構造を学ぶことは、それ以降の章を読む上でも大切です。また「再帰」は高度なアルゴリズムを記述する上で欠かすことのできないテクニックです。ここでマスターしておきましょう。
Chapter 4ではデータの検索とソートについて学びます。これらはアルゴリズムの定番です。そこには、先人が苦労して編み出した珠玉のアイデアが詰まっています。そのために、有名なソートアルゴリズムを紹介していきます。その問題解決手法やアイデアに注目しましょう。
Chapter 5では迷路や数字パズルといった知的好奇心をくすぐる題材として、ゲーム解法アルゴリズムを学びます。探索アルゴリズムや動的計画法など、これらはさまざまな場面で活用できる覚えて得するアルゴリズムです。パズルを楽しみながらレベルアップしましょう。
そして、最後のChapter 6では、人工知能(AI)や自然言語処理に関するアルゴリズムを解説します。文章の自動分類や自動生成や、手書き数字データ画像の判定などを学びましょう。昨今、AIを活用した技術や製品が世間を賑わせていますが、その基礎となるアルゴリズムを学びましょう。
書誌情報
- 著者: クジラ飛行机
- 発行日: 2023-06-23
- 最終更新日: 2023-06-23
- バージョン: 1.0.0
- ページ数: 384ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
クジラ飛行机
一人ユニット「クジラ飛行机」名義で活動するプログラマー。代表作に、テキスト音楽「サクラ」や日本語プログラミング言語「なでしこ」など。2001年オンラインソフト大賞入賞、2004年 IPA未踏ユースのスーパークリエイター認定、2010年 IPA OSS貢献者賞受賞。技術書も多く執筆しており、HTML5/JS・PHP・Pythonや機械学習・アルゴリズム関連の書籍を多く手がけている。
目次
Chapter 1 なぜアルゴリズムが重要なのか
- 1-1 なぜアルゴリズムが大切なのか(モチベーションを高めよう!)
- 1-2 アルゴリズムの評価手法について
- 1-3 計算量とO記法について
- 1-4 Pythonのインストール
- 1-5 ターミナルのススメ
- 1-6 Pythonで手軽に書けるテストについて
- 1-7 プログラミングの基本― 制御構文まとめ
- 1-8 プログラミング基本データ型のまとめ
Chapter 2 条件分岐と繰り返しのアルゴリズム
- 2-1 FizzBuzz問題
- 2-2 素数判定(試し割り法)
- 2-3 素数判定の最適化と素数列挙(エラトステネスのふるい)
- 2-4 コインの組み合わせ問題
- 2-5 N進数表現と変換
- 2-6 シーザー暗号
- 2-7 上杉暗号
- 2-8 XOR暗号
- 2-9 カードのシャッフル
Chapter 3 データ構造と再帰について
- 3-1 定番データ構造 ― リスト・スタック・キュー・リングバッファ
- 3-2 スタック構造で解く逆ポーランド記法(後置記法)
- 3-3 再帰でフィボナッチの計算
- 3-4 木構造のディレクトリ内のファイルを全列挙
- 3-5 再帰で解くハノイの塔
- 3-6 データの間違いを簡単に検出できる「ハッシュ関数」
- 3-7 仮想通貨にも使われるハッシュ木(マークル木)
Chapter 4 定番アルゴリズム(データの検索とソート)
- 4-1 基本ソートアルゴリズムについて(バブルソート/コムソート/選択ソート)
- 4-2 発展ソートアルゴリズムについて(バブルソート/コムソート/選択ソート)
- 4-3 探索アルゴリズムについて(線形探索/二分探索/二分探索木)
- 4-4 バイナリデータをテキスト表現しよう
- 4-5 データの圧縮について
- 4-6 画像に関するアルゴリズム
Chapter 5 難解パズルで学ぶアルゴリズム
- 5-1 迷路の自動生成(棒倒し法、穴掘り法)
- 5-2 迷路の自動探索
- 5-3 「ナンプレ」(パズル)を解く
- 5-4 15パズルを解く
- 5-5 ナップサック問題
- 5-6 疑似乱数生成
Chapter 6 人工知能(AI)・自然言語処理のアルゴリズム
- 6-1 文章の類似度(レーベンシュタイン距離、n-gram)
- 6-2 文章のカテゴライズ(単純ベイズ分類器)
- 6-3 マルコフ連鎖を利用した文章生成
- 6-4 データのクラスタリング(k-means法)
- 6-5 画像分類 ― k近傍法で手書き数字の判定