2013年4月14日日曜日

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

当たり前の日常が当たり前でないようにする本







例えば、あなたが銀行のATMで自分の口座から、友人の口座に送金するとしましょう。
しかし、その送金の最中に大地震が発生しました。電源は途切れ、銀行のデータセンターが、
ダウンしてしまいました。



幸いにも銀行には、バックアップ用の電源があり、データセンターはすぐに復旧しました。
このとき、あなたの口座からの送金は、正しく友人の口座に送金されたのでしょうか?



ひょっとして、あなたの口座からの送金記録だけが残り、
友人の口座への送金記録は、残っていない
なんてことはないでしょうか?



そうなれば、あなたの預金口座から、何の意味もなく残高が減ったことになります。
もちろん友人の口座の残高は、増えていません。



しかし第8章で登場する「トランザクション」の概念を用いれば、
あなたから友人への送金記録が、片手落ちになることは、ありません。
ここでいう「トランザクション」とは、次のように定義されます


"データベースを一貫性の保たれた状態にするためにはすべてが実行されていなければならないデータベースへの一連の変更である。”

(P195「第8章データベース」)




>ATM, Bradford on Avon

ATM, Bradford on Avon / nicksarebi





アルゴリズムは目に見えないインフラ





銀行の送金の例は、日常生活におけるアルゴリズム(ある問題を解決するための手順)の
活用例です。現代の生活では、すでにアルゴリズムが必要不可欠なものになっている例が、
わんさか登場します。



  • 検索エンジンは単語を入れるだけで、「なぜ」最適なWebページを返してくるか?(第2章)
  • 暗号の鍵は公開されているのに、秘密の通信が「なぜ」できるのか?(第4章)
  • EmailやYouTubeの動画の受信データは、いつも「なぜ」確実に送られてくるのか(第5章)




「当たり前」のことを「当たり前」と言わない人のための本





本書は単なるプログラミングの知識に関する本ではなく、コンピュータ科学に関する本です。
だからといって、高等な数学が必要かというと、原理を知るだけであれば、
「数学の知識」は必要はありません。「算数の知識」で十分でしょう
(ただし理解するための多少の根気が必要ですが)。



もちろん、この本を読んだからと言って、特別な魔法の力を得ることはできません。
しかし、夜空を見上げて、星座を読み取ることができる
アマチュアの天文学者のようになれるかもしれません。




従って本書は、こんな人に読むことをおススメします。


  • 大学でコンピュータ科学を専攻する新入生
  • 知識ゼロからwebサービスを始めたい人
  • 日常の疑問を解き明かすための知恵を付けたい人



【関連エントリ】


グーグル ネット覇者の真実 追われる立場から追う立場へ
集合知プログラミング





0 件のコメント:

コメントを投稿