世界でもっとも強力な9のアルゴリズム

身近で強力な魔法たち

検索エンジンや公開鍵暗号などIT社会を支える主要アルゴリズム、全部入りのお得な本です。

書名にアルゴリズムとありますが、プログラミングの本ではなく、コンピュータサイエンスの入門的な内容になってます。
だからソースコードは一切無し!ひたすら図解で解説する取っつきやすい一冊です。

多彩なトリックを解説

本書では
検索エンジン、公開鍵暗号、誤り訂正符号、画像認識、データ圧縮、データベース、デジタル署名
といった実に多彩なアルゴリズム、というかトリックを扱います。

前述の通り、ソースコードは一切使わず、図解で巧みに(マジで)説明してくれるので、気軽に読めます。

難しい話題を上手く単純化して魅せる、著者の解説手腕には心底驚かされました。

私は専門学校で先生もしているので、よく本書を講義の参考にしています。
そんな普段お世話になっている一冊なので、ここで本書のアルゴリズム(と魅力)を一挙紹介させて頂きます。

検索エンジンの基本

巨大なネットの海から、目当ての情報を探す
そんな砂浜で黒胡麻を探すようなマジックが分かります

AltaVistaって知ってます?

ページランク

Googleを巨大企業に躍進させた革命的アルゴリズム
サイトの重要度を判断する仕組みをビジュアルに解き明かす

ようこんなの思い付いたなと思いますねー

 公開鍵暗号

見知らぬ人と安全に情報交換する方法 いわゆるhttps通信です
誰でもロックできるけど開けられない、南京錠を簡単に実現するトリックとは?? 

なお本章は少し難しいので、後回しにするのがオススメです

 誤り訂正符号

自分でデータ破損を検出し修復する、エヴァンゲリオンみたいだ(小並)
ネットワークやハードの想定外に立ち向かう絶対必須のアルゴリズムです

OSはあなたの見えない所で、コレを何千何万回と行ってます

 パターン認識

画像から文字や顔を認識する、スマホでお馴染みのアレ
脳の構成を真似たニューラルネットワークを使います

AIの基本のキとしても有用な章です

 データ圧縮

小さなデータから完全な情報を復元する
そんな無から有を生み出す魔法? ZIP圧縮でお馴染みですね

実際にやってる事は大変シンプルで面白い

 データベース

オンライン取引の信頼性を支えるアルゴリズム
世界規模で矛盾のないデータを維持する仕組みとは?

障害やエラーを克服するアプローチが地道だけど鮮やか!

 デジタル署名

インターネット上で身分証明を実現するトリック
そのデータは本物なのか?を保証します 

3番目の公開鍵暗号の応用なので、本書で最も高度な章です

決定不能性

絶対に実現できないアルゴリズムについて
いわゆるチューリングマシンの停止問題です

身近ではないが、著者の強い思い入れが感じられ、ラストに相応しいトピック

偉大なアルゴリズムは美しい

このように本書は、身近で興味深いアルゴリズム(社会の仕組み)を平易に教えてくれます。
厚さも約300ページでコンパクト、凶器にはならないライトウェイトが嬉しいですね。

それと最後に一つ、本書に収録されてるアルゴリズムは皆美しいです。

どれも非常にシンプルで、無駄のないルールです。
まるで人ならざる者の意思が存在するような…そんなエレガントさを感じました。

一見すると複雑に見えるシステムが単純な原則の上に成り立っている。
こんな美しい事実が世界にはたくさんあります。

プログラミングでもそうですが、単純さに辿り着くのって凄い大変なんですよ。
対象を絞り、地道に観察し、試行錯誤の果てに、やっと単純さを発見する。
ほとんど無限ループです。

そんな途方もない繰り返しを経て、社会の問題を解決した先輩方に感謝しながら読めました。

机上の空論ではなく、身近な社会でコンピュータサイエンスがどう使われてるか?
をビジュアルに解き明かす良書です。

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム
9.6

分かりやすさ

9.5/10

情報量

9.0/10

コストパフォーマンス

10.0/10

普遍性

10.0/10

Points

  • 多彩で美しいアルゴリズム達
  • ソースなし!図解だけで明快な解説
  • コンピュータサイエンスの実例が分かる

Notes

  • 公開鍵とデジタル署名は少し高度
  • 読みやすい章から読もう

もっと知りたい?
C言語_初級 | C言語_中上級 | C++_初級 | C++_中上級 | C#_初級 | C#_中上級 | Java_初級 | Java_中上級 | コンピュータ_サイエンス | アルゴリズム_ | ゲーム_プログラミング | DirectX_ | Unity_ | ゲーム_デザイン | ゲームのしくみ_ | 数学_ | プログラミング_テクニック | 歴史_偉人 | ソフトウェア工学_ | 読み物_エッセー | 人生_生き方 | 創造_発想 | 雑誌_ | 漫画_小説_映画 | メルマガのバックナンバー_

無料メルマガ たのしくやってます

読むだけで使える!プログラマーの裏技と考え方

読むだけでプログラミング力が上がる
上辺の技術ではないプログラミングの本質が分かる
ビギナーからプロのゲームプログラマーまで幅広い方が購読しています

つまり、登録して一緒にプログラミングを楽しもうぜ!
ってことだよ。言わせんな恥ずかしい。


登録完了メールが届きます
届かない場合は迷惑メールフォルダや設定を御確認下さい(Yahoo!メールにて発生)
powered byメール配信CGI acmailer

Kuniaki Ebata 登録者

大学中退(文系)の専門卒 日本で唯一のプログラミング書籍評論家 プログラマーで現役のスキー国体選手です 頭と体を動かすのが大好きなフレンズなんだね 専門学校で先生もやってます プログラミングは21歳から 貴族じゃない独身持病:重度うつ病(薬とサポートのおかげで何とか生きてます)教え子をゲーム業界へどんどん送り込み、世界を面白くする野望を実現中プログラミングが上達するメルマガやってますここを見たゲーム業界の卒業生へ 新作が出たら、連絡するか現物を送ってくれると嬉しいです ただし18禁・CERO-Dの場合は、厳重に梱包の上、品名をパソコン部品にて送る事(だいじ)このページが参考になった方へ ぜひSNSやブログでシェアして欲しいです お願いします(少し上にボタンあります) 最近Google先生が中身の無いまとめサイトを優遇するので困っています助けて下さい(>_<)シェアしてくださった方には 特別レポート プログラミング書籍が10倍わかる読み方(pdf) を差し上げます こちらからご報告頂くか、こっそりDMを送って下さい