書籍概要

Pythonによるはじめてのアルゴリズム入門

著者
発売日
更新日

概要

本書は,Pythonを使用してアルゴリズムを習得するための入門書です。ソート,サーチ,再帰,リスト,木,グラフといったアルゴリズムの基本から,連立方程式の解法,逆ポーランド記法,最短路問題,タートルグラフィックス,グラフ描画,パズルやゲームといった実用的な応用まで,豊富な例題を通してアルゴリズムを効率的に学ぶことができます。例題や練習問題は「Google Colaboratory」で動作するので,Webブラウザーがあればすぐに動作が確認可能です。

著者がこれまで30年以上にわたって出してきた定番シリーズ「○○によるはじめてのアルゴリズム入門」の最新版となります。

こんな方におすすめ

  • すでにPythonについては知識があり,Pythonでアルゴリズムを勉強したい人

サンプル

目次

第1章 ウォーミング・アップ

  • 1-0 アルゴリズムとは
  • 1-1 漸化式
  • 1-2 写像
  • 1-3 順位付け
  • 1-4 ランダムな順列
  • 1-5 モンテカルロ法
  • 1-6 ユークリッドの互除法
  • 1-7 エラトステネスのふるい

第2章 数値計算

  • 2-0 数値計算とは
  • 2-1 乱数
  • 2-2 数値積分
  • 2-3 テイラー展開
  • 2-4 非線形方程式の解法
  • 2-5 補間
  • 2-6 多桁計算
  • 2-7 長いπ
  • 2-8 連立方程式の解法
  • 2-9 線形計画法
  • 2-10 最小2乗法

第3章 ソートとサーチ

  • 3-0 ソートとサーチとは
  • 3-1 基本ソート
  • 3-2 シェル・ソート
  • 3-3 線形検索(リニアサーチ)と番兵
  • 3-4 2分探索(バイナリサーチ)
  • 3-5 マージ(併合)
  • 3-6 文字列の照合(パターンマッチング)
  • 3-7 文字列の置き換え(リプレイス)
  • 3-8 ハッシュ

第4章 再帰

  • 4-0 再帰とは
  • 4-1 再帰の簡単な例
  • 4-2 再帰解と非再帰解
  • 4-3 順列の生成
  • 4-4 ハノイの塔
  • 4-5 迷路
  • 4-6 クイック・ソート

第5章 データ構造

  • 5-0 データ構造とは
  • 5-1 スタック
  • 5-2 キュー
  • 5-3 データ構造としてのリスト
  • 5-4 Pythonの言語仕様のリスト
  • 5-5 双方向リスト
  • 5-6 逆ポーランド記法
  • 5-7 パージング
  • 5-8 自己再編成探索
  • 5-9 リストを用いたハッシュ

第6章 木(tree)

  • 6-0 木とは
  • 6-1 2分探索木のリスト表現
  • 6-2 2分探索木の作成
  • 6-3 2分探索木の再帰的表現
  • 6-4 2分探索木のトラバーサル
  • 6-5 レベルごとのトラバーサル
  • 6-6 ヒープ
  • 6-7 ヒープ・ソート
  • 6-8 式の木
  • 6-9 知的データベース

第7章 グラフ(graph)

  • 7-0 グラフとは
  • 7-1 グラフの探索(深さ優先探索)
  • 7-2 グラフの探索(幅優先探索)
  • 7-3 トポロジカル・ソート
  • 7-4 Eulerの一筆書き
  • 7-5 最短路問題

第8章 グラフィックス

  • 8-0 ColabTurtle(タートルグラフィックス・ライブラリ)
  • 8-1 forwardとleft
  • 8-2 2次元座標変換
  • 8-3 ジオメトリック・グラフィックス
  • 8-4 3次元座標変換
  • 8-5 立体モデル
  • 8-6 3次元関数と隠線処理
  • 8-7 リカーシブ・グラフィックスⅠ
  • 8-8 リカーシブ・グラフィックスⅡ
  • 8-9 いろいろなリカーシブ・グラフィックス
  • 8-10 グラフィックス・ライブラリ(glib.py)
  • 8-11 Matplotlibを使ったグラフの作成
  • 8-12 Matplotlibを使った3D表示

第9章 パズル・ゲーム

  • 9-1 魔方陣
  • 9-2 戦略を持つじゃんけん
  • 9-3 バックトラッキング
  • 9-4 ダイナミック・プログラミング
  • 9-5 万年暦で作るカレンダー
  • 9-6 21を言ったら負けゲーム
  • 9-7 迷路の作成と探索

サポート

ダウンロード

本書に掲載しているプログラムコードおよびファイルをダウンロードすることができます。圧縮ファイルをダウンロードし,展開してご利用ください。

(2024年7月29日更新)

  1. 下の枠内に,本書P.464に記載されている「アクセスID」と「パスワード」を入力します。
  2. 「ダウンロード」をクリックします。

なお,ipynbファイルを使用する場合,同時に使用できるセッション数には限りがあります。そのため,1つのノートブックを開いて,その都度txtファイルからコピー&ペーストした方が実行しやすい場合があります。

正誤表

「4-6 クイック・ソート」で掲載しているRei31,Dr31におきまして,配列が降順になっているとエラーになることがあるため,プログラムを以下のように修正します。

(2024年7月29日最終更新)

P.193 Rei31の12行目

while a[i] < s:
while i <= right and a[i] < s:

P.193 Rei31の15行目

while a[j] > s:
while j >= left and a[j] > s:

P.195 Dr31の12行目

while a[i] < s:
while i <= right and a[i] < s:

P.193 Rei31の15行目

while a[j] > s:
while j >= left and a[j] > s:

商品一覧