問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本(モンダイカイケツノタメノアルゴリズムトスウガクガキソカラシッカリミニツクホン)
プログラミング- 著者:
- 米田優峻(ヨネダマサタカ)
- 出版社:
- 技術評論社
- 出版日:
- 2021年12月25日頃
- ISBN:
- 9784297125219
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
アルゴリズムは、プログラミングを用いて問題を解決していくには欠かせない大切な道具です。一方、アルゴリズムを理解し、そして応用できるようになるためには、ある程度の数学的知識と数学的考察力も大切です。
本書では、中学レベル〜大学教養レベルの数学的知識のうちアルゴリズム学習に必要なものについて扱うとともに、有名なアルゴリズムと典型的な数学的考察について丁寧に解説します。さらに、知識をしっかり身に付けるための例題・演習問題が全 200 問掲載されています。
第 1 章 アルゴリズムと数学の密接なかかわり
第 2 章 アルゴリズムのための数学の基本知識
第 3 章 基本的なアルゴリズム
第 4 章 発展的なアルゴリズム
第 5 章 問題解決のための数学的考察
最終確認問題
技書の森解説
アルゴリズムの学習書を開いたものの、計算量の式や確率の議論が出てきた途端にページが進まなくなる。本書はその「数学の壁」に正面から取り組んだ一冊で、 2021 年 12 月に技術評論社から刊行されました。著者の米田優峻氏は競技プログラミングの世界で「 E869120 」として知られ、版元公式のプロフィールによれば AtCoder 最高ランクの赤 (レッドコーダー) で、 2020 年までに国際情報オリンピック (IOI) の金メダルを 3 度獲得しています。トップ競技者でありながら「競プロ典型 90 問」のような普及企画を続けてきた人物で、その説明の丁寧さが本書の作りにも表れています。
5 章構成と演習 200 問の中身
アルゴリズムと数学が切り離せないのは、「正しく動く」だけでなく「間に合うか」を見積もる仕事だからです。計算量 の評価には指数や対数の感覚が要り、乱択や期待値の議論には確率が、グラフや幾何の問題にはその分野の基礎が要ります。本書は中学レベルから大学教養レベルまでの数学のうちアルゴリズム学習に必要な部分だけを選び、全 5 章 (アルゴリズムと数学のかかわり、数学の基本知識、基本的なアルゴリズム、発展的なアルゴリズム、数学的考察) で数学とアルゴリズムを行き来しながら進みます。例題と演習問題は全部で 200 問用意されており、「読んで分かったつもり」で終わらせず手を動かして確かめる構成です。 B5 変形判 288 ページという大きめの判型も、数式や図を追う学習書として扱いやすいところです。
向いている読者と前提知識
向いているのは、アルゴリズム入門書 で数式に詰まった経験のある人、競技プログラミングを始めたいが数学に自信がない人、基本情報技術者試験 などで計算量やオーダー記法に苦手意識が残った人です。プログラミング自体の初歩 (変数・ループ・配列程度) は前提になりますが、数学は中学レベルから拾い直してくれるため、文系出身のエンジニアが離散数学の素養を固め直す用途にも噛み合います。逆に、特定言語での実装テクニックや、データ構造の内部実装の詳説を求める段階の人には主目的が違う本です。
『競技プログラミングの鉄則』との使い分け
同じ著者には『競技プログラミングの鉄則』 (マイナビ出版、 2022 年 9 月) があり、あちらはコンテストで戦うための典型手筋を鍛える実戦寄り、本書は手筋を支える数学の土台を作る基礎寄りという関係です。数学に不安があるなら本書を先に、すでに高校数学が手に馴染んでいるなら鉄則本から入って詰まった箇所を本書で補う、という順番が組めます。アルゴリズム学習を「数式を飛ばし読みしながら進める」状態から卒業したい人にとって、最初に投資する価値のある一冊です。
言及 Qiita 記事 (64 件)
アルゴリズムとは何か!? ~ 文系理系問わず楽しめる精選 6 問 ~
♡ 2541アルゴリズム, 機械学習, DeepLearning, 競技プログラミング, 新人プログラマ応援アルゴリズムの世界地図
♡ 1326アルゴリズム, 最適化, 競技プログラミング, データ構造, 新人プログラマ応援競技プログラミング入門者の成長のためのメモ
♡ 536C++, 競技プログラミングhashアルゴリズムとハッシュ値の長さ一覧(+ハッシュ関数の基本と応用)
♡ 509hash, ipfs, ハッシュ関数, ブロックチェーン, NFTプログラミング初心者の40代おじさんが1年かけてAtCoder緑になった話(色変記事)
♡ 465AtCoder, 競技プログラミング[2023年1月版]競技プログラミングを始めたばかりの人にオススメの問題集
♡ 358競技プログラミング40代プログラミング初心者がpython始めて半年!独学で勉強が続いている理由と読んだ本
♡ 276Python, 初心者, 読書感想文, 個人開発, プログラミング初心者SE 1年目で読んだ技術書68冊+α
♡ 276Java, 初心者, 技術書, Se【競プロ】青色までに戦う6つの敵
♡ 217AtCoder, 競技プログラミング, 色変記事【読書の夏?】各分野のおすすめ技術書を75冊まとめてみた
♡ 123AWS, Security, 初心者, 技術書, AI
この本に興味がある方におすすめ
この本に関連
米田優峻 の他の書籍
関連記事
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。
機械学習に必要な数学の本ガイド - 「どこまでやるか」で選ぶ 3 レベル
機械学習 / ディープラーニングに必要な数学を学ぶ本の選び方を 3 レベル (数式アレルギーの解消 → 機械学習で使う数学だけ → 数理を体系的に) で整理。学び直しの範囲を絞り、挫折せずに必要十分な数学を身につけるルートを解説します。