內容簡介
內容簡介 本書(原題:Python Algorithms: Mastering Basic Algorithms in the Python Language)はアルゴリズムの分析と設計方法について、Pythonを使って説明します。古典的なアルゴリズムに焦点を絞って解説していますが、基本的なアルゴリズムによる問題解決の方法もしっかり理解できます。本書はプログラミングとコンピュータサイエンスの最も重要で難しい分野を非常に読みやすい形で解説しています。アルゴリズムの理論とプログラミングの実践の両方をカバーし、理論が実際のPythonプログラムにどのように反映されているかを説明します。また、Pythonに組み込まれている有名なアルゴリズムとデータ構造について説明し、実装と評価について学ぶことができます。本書で学べること 新しい問題を効率的なアルゴリズムで解ける問題に変換する方法。もしくは、効率的に解けない問題であると示す方法 数学と基本的な実験やベンチマークを使ってアルゴリズムとPythonのプログラムを分析する方法 古典的なアルゴリズムとデータ構造を深く理解し、Pythonでこれらを効率的に実装する方法 新しい問題を解くために新しいアルゴリズムを設計し、実績のある設計原理・設計技法を使って実装する方法 Pythonのハイパフォーマンスコンピューティングを実現する豊富なツールを使って実装を高速化する方法 第1章 どんな本なのか?1-1 本書の内容(つまり、何に関する本なのか?)1-2 本書を読む理由(なぜ、あなたはここにたどり着いたのか?)1-3 本書を読むにあたって(前提条件)Column 必要なものを手に入れよう1-4 本書の構成1-5 まとめ1-6 興味のある方へ1-7 演習問題1-8 参考文献第2章 アルゴリズム解析の基礎2-1 計算機における重要な考え2-2 漸近記法ブラックボックス listギリシャ語はちんぷんかんぷん!交通ルール漸近法の試し乗り3 つの大事なケース実験に基づいたアルゴリズムの評価ヒント1 できるかぎり、心配しないヒント2 時間測定にはtimeit を使おうヒント3 ボトルネックを見つけるために、プロファイラを使おうヒント4 結果を可視化しようヒント5 時間の比較によって結論を導き出すときは要注意ヒント6 実験によって漸近性について結論を出すときは要注意2-3 グラフと木構造の実装ブラックボックス dictとset隣接リストなど隣接行列Column 特殊な目的のNumPy配列木構造の実装Column Bunchパターン多様な表現Column グラフライブラリ2-4 ブラックボックスにご注意を隠れた二乗項浮動小数点を使うときの問題Column 数学のちょっとした復習2-5 まとめ2-6 さらに興味のある方へ2-7 演習問題2-8 参考文献第3章 数え上げ入門3-1 総和をひとかじりギリシャ語をまた少し総和を使ってみる3-2 トーナメントに関する2 つの物語握手問題ウサギとカメColumn なぜ二進数が使えるのか3-3 部分集合と並べ替えと組み合わせColumn 擬似多項式時間3-4 再帰と漸化式自分の手で計算してみよういくつかの大事な例推定と確認Column ウサギの穴へ-変数を変えてみるマスター定理:クッキー型解法3-5 いったい何についての話だったのか?3-6 まとめ3-7 興味のある方へ3-8 演習問題3-9 参考文献第4章 帰納と再帰と還元4-1 なるほど、それなら簡単だよ!4-2 いち、に、たくさーん
作者介紹
作者介紹 辻真吾監訳者辻 真吾(つじしんご)現在、東京大学先端科学技術研究センターに所属。2000年東京大学大学院工学系研究科修了。創業間もないベンチャー企業に就職しJavaを用いたWebアプリ開発に従事。バイオインフォマティクスの研究を志し、退職して現在の勤務先に博士課程の学生として復学。2000年代中頃からPythonに注目し、2010年に「Pythonスタートブック(技術評論社)」を出版。その他にも「Pythonで学ぶアルゴリズムとデータ構造(講談社)」など著書多数。Start Python Clubを主宰し、2015年から月に1回「みんなのPython勉強会」を開催している。最近は要素還元主義に立脚した科学研究や社会システムに限界を感じており、複雑系やその1分野としてのAgent-based modeling(ABM)に興味がある。おいしい食事とお酒が好き。塩井宏亮訳者塩井宏亮(しおいひろあき)東京大学大学院工学系研究科航空宇宙工学専攻を修了後、2014年に日本General Electric (GE) に入社。 2016年にデータサイエンティストとしてアメリカ(カリフォルニア州)のGE Digital本社へ転籍。金融、電力、製造業、ヘルスケアなどを中心に、様々な産業分野の顧客へコンサルティングサービスを提供。顧客の問題発見からアルゴリズム開発・実装、プロトタイプまでを手掛ける。現在、同じくカリフォルニア州に本社を置くスタートアップ dotData, Inc. にてデータサイエンティストとして活動中