書籍概要

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

著者
発売日
更新日

概要

アルゴリズムは,プログラミングを用いて問題を解決していくには欠かせない大切な道具です。一方,アルゴリズムを理解し,そして応用できるようになるためには,ある程度の数学的知識と数学的考察力も大切です。
本書では,中学レベル~大学教養レベルの数学的知識のうちアルゴリズム学習に必要なものについて扱うとともに,有名なアルゴリズムと典型的な数学的考察について丁寧に解説します。さらに,知識をしっかり身に付けるための例題・演習問題が全200問掲載されています。

こんな方におすすめ

  • アルゴリズムとそれを支える数学について基礎から学びたい人

サンプル

samplesamplesamplesamplesample

目次

第1章 アルゴリズムと数学の密接なかかわり

第2章 アルゴリズムのための数学の基本知識

第3章 基本的なアルゴリズム

第4章 発展的なアルゴリズム

第5章 問題解決のための数学的考察

最終確認問題

サポート

補足情報

著者GitHubページについて

(2021年12月22日更新)

C++/Python/Java/Cのソースコード,節末問題・最終確認問題の解答,正誤表・更新情報などが掲載されています。

自動採点システムについて

(2021年12月22日更新)

本書に対応した自動採点システムです。

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2023年12月15日最終更新)

P.127 問題3.7.2 問題文

下図の道路網において、スタートからゴールまで最短距離で行く方法は何通りありますか。
下図の道路網において、スタートからゴールまで行く方法は何通りありますか。

「最短距離で」が不要です。

(以下2022年12月6日更新)

P.106 本文下から4行目(第8刷にて修正)

常にAよりBのほうが大きい値に
常にBよりAのほうが大きい値に

(以下2022年7月13日更新)

P.137 コード4.1.1の26行目(第8刷にて修正)

double S = abs(BAx * CAy - BAy * CAx)
double S = abs(BAx * BCy - BAy * BCx)

(以下2022年1月20日更新)

P.136 一番下の図内、囲み部分(第3刷にて修正)

平行四辺形の面積 = BA, BCの外積

BA, BCはベクトルなので,正しくはBA,BCの文字の上に矢印が付きます。

P.157 4.4.3項 例1の図の「ステップ2」グラフ数式(第3刷にて修正)

y = 3x + 5
y = 2x + 3

P.265 問題8の問題文4(第3刷にて修正)

1.で求めた漸化式に出現する値
1.で求めた数列に出現する値

P.266 問題11の問題文4(第3刷にて修正)

白丸の個数
マルの個数

(以下2022年1月6日更新)

P.193 「4.7.3 行列の掛け算」の図内中央付近(第3刷にて修正)

3行目
3

(以下2021年12月22日更新)

P.87 節末問題 問題番号(第3刷にて修正)

問題3.3.6
問題3.3.7

P.144 コード4.2.2(第2刷にて修正)


for (int i = 1; i <= N - 1; i++) {

for (int i = 2; i <= N; i++) {

P.177 二部マッチング問題 解説内(第2刷にて修正)

Hopkroft-Karp
Hopcroft-Karp

P.276 参考文献を追加(第2刷にて修正)

追加 [35] 68-95-99.7則
https://artsandculture.google.com/entity/m02plm6g?hl=ja

商品一覧