2007年3月31日土曜日

Web+DB Press 総集編 (vol. 1-36)

見本誌を頂きました。いつもありがとうございます。
総集編

今回、私は特集記事の第3章「アルゴリズム再入門 C#編」を書きました。
最初にお話を頂いたときには「Visual Basicを例に……」ということだったんですが、C#で書きました。
あ、でも、C#依存な部分はほとんど出してませんので、食わず嫌いしないでくださいね……MS技術がアウェイなのは重々承知していますけれども。

内容なんですが、

「アルゴリズム」を一言で言うと、仕事をやりとげるための作業手順を並べたものになります。本来は数学用語ですが、日常生活にもアルゴリズムを見つけることはできます。たとえば、インスタント焼きそばのアルゴリズムはこんな感じでしょう。



  1. お湯を沸かす

  2. ふたを開ける

  3. かやく袋とソース袋を取り出す

  4. かやくを乗せる

  5. 麺が浸るまでお湯を容器に注ぐ

  6. ふたをかぶせる

  7. 3分程度待つ

  8. ふたの湯切り口からお湯をすべて捨てる

  9. ふたを開ける

  10. ソースをかける

  11. かきまぜる


一つ一つの手順だけを取り出してみても役には立ちませんが、それらが組み合わさることで、私達は味がまろやかな焼きそばを食べることができるのです。(この「組み合わさって意味がある」ところをフィーチャーしたのが「ピタゴラスイッチ」の「アルゴリズムたいそう」なんでしょうね。)



……みたいな、勢いで書いた部分はカットしたんですが、それでも当初の目論見より大幅に長くなってしまいました。
もっと簡潔に、もっとうまく書けるように、精進します。
あと、書いてみたかった(というか、書いてみたけどやめた)のは、

  • ハッシュ法 (これはデータ構造の章にあります。すばらしいです)

  • 木の探索 (traversal)

  • 平衡木 (AVLとか)

  • その他の有名なソート (バブルソート、シェルソート、ヒープソート、etc)

  • Skip List (これはどちらかと言うとデータ構造メインな話なのでためらった)

  • BM法 (というかQuick Searchのほうが簡潔なのでそっち)


などなど。
あと、数学的なアルゴリズム話(エラトステネスのふるいとか、ニュートン法とか、モンテカルロ法とか)も……

夢は膨らむばかりですが、実力と時間が足りない。

0 件のコメント:

コメントを投稿