ジョン・マコーミックのレビュー一覧
-
Posted by ブクログ
3つの基準から9つの重要なアルゴリズム(正確にはコンピュータが行なう9種類の仕事に役立つ9種類のアルゴリズムグループ)を取り上げ、それがどういう理屈で機能しているかを、巧みな比喩を使って非専門家に説明した本。
《9種類のアルゴリズムグループ》
・インデクシング
・ページランク
・公開鍵暗号法
・誤り訂正符合
・パターン認識
・データ圧縮
・データベース
・デジタル署名
・クラッシュ検出(ただし、この9つめは、存在し得ない不可能なアルゴリズムであることの説明)
《本書が採用した3つの基準》
・普通のコンピュータユーザーが毎日使っているアルゴリズム
・現実の世界の具体的な問題を解決するアルゴリズム
・コンピュータ科学理論に関係のあるアルゴリズム(この基準により、ハードウェアを対象とするもの、インターネットなどのインフラ設計に関わるものは除外される)
だいたいのところは私でも理解できた(公開鍵暗号法とデジタル署名はちょっと難解で読み飛ばしましたが)。だとしても、それで、たとえばエクセルで行なう仕事の質とスピードが上がるわけではないし、多数のメールを効率よく処理できるようになるわけではない。
では、この本の目的は何か?著者の説明はこうだ。コンピュータを使う時に、背後で動いているブラックボックスについての知識があることで、読者が驚きや満足を味わえるようにすることである。天文学の知識ゆえに、夜空を眺める体験が多少なりとも深みを増すのと同じである。なるほど。なんとなくわかる気がする。 -
Posted by ブクログ
公開鍵暗号法。
鍵が公開されているのに、なんで暗号化できているんだっけ?
何回読んでも忘れる。
今回もそうだろう。
でも、これまでで一番やさしく、かつ、数学的でした。
(以下抜粋。○:完全抜粋、●:簡略抜粋)
●公開鍵暗号法(P.75-78)
ステップ1:A、Bが秘密色を選ぶ
ステップ2:公開色を確認する
ステップ3:A、Bは自分の秘密色と公開色をまぜた混合色を作り、公開する
ステップ4:AがBの混合色を持ってくる
ステップ5:Aは秘密色とBの混合色を混ぜ合わせて、共有用の混合色をBに渡す
ステップ6:Bは受け取った共有用の混合色から、
公開色、Bの秘密色を取り除くと、Aの秘密色がわかる
○混合処理は「離散べき乗」、分散処理は「離散対数」と呼ばれる。
そして、コンピュータが離散対数を効率よく計算する方法は見つかっていないので、
離散べき乗は私たちが探している一方通行操作の一種と考えることができる。(P.85) -
Posted by ブクログ
よいテーマだと思う。コンピューターまわりの本で、ビジネスでも個別技術解説でもハードウェアその他でもない分野。
記述は平易で、とても基礎的なことから(たとえば累乗の記述まで噛んで含めるように、また拡張子の解説まで)書かれているので、退屈することもあるのだけれど、それで油断しているとRSAの解説で集中を要求されたり。
最後は計算不能性まで解説していてすばらしい!と言いたいのだけれど、ちょっと物足りないかな。
すごく割り切ってもっと簡単にする、というのでない限り、もう少し踏み込んでくれないと中途半端だった気がする。
PCになじみの薄い高校生とか文系大学生(で理系に拒否反応示さない人)とか向けかなあ。ちょっとターゲット読者層がピンとこないかも。 -
Posted by ブクログ
ページランク、公開鍵暗号、2フェーズコミットなどIT系の人間にはある程度常識となっている著名なアルゴリズムを平易に解説している本。数式や抽象的な記述を極力排除した平易な解説が特徴なのだが、それが逆に少々まどろっこしいという印象もある。数式嫌いの人にはとても良い本だと思います。
個人的には第十章、決定不能性の章がおもしろかった。存在し得ないプログラム、を具体例を通して解説されておりとてもわかりやすい。全てのプログラムを対象としたクラッシュ検出プログラムというのが実現不能であることを具体例を通じてわかりやすく証明しています。チューリングなどが研究していた内容。要するに、”全てのプログラム”を対象とすると、プログラムには自分自身も含まれ、自己言及が発生するとおかしくなる、というのが肝だと思います。ゲーデルの不完全性定理などと通じるないようですね。ただ筆者も述べているように、”決定不能性がコンピュータの利用に及ぼす実際の影響はない”。あくまでも理論的な限界の追求ですね。なのであまり応用的な面では重要ではないのでしょうが、コンピュータ科学の理論としてはおもしろいと思います。