好きなアルゴリズム:モンテカルロ法
今週前半、小飼弾さんの「404 Blog not found」が「プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10」という記事を載せていたが、仕事も一段落間近かなので、その記事を見て以来、書きたいと思っていたことを書いてみようと思う。
nobilog2復活へのリハビリエントリーだ。
小飼さんの記事は、Hatena Questionの「あなたが一番好きなアルゴリズムを教えてください。また、その理由やどんな点が好きなのかも教えてください」がきっかけになった記事のようだ。
私はプログラマーではないが、まだパソコンが8ビットで「マイコン」と呼ばれていた時代に出会って衝撃を覚えたアルゴリズムがある。
もしかしたら一般に言うアルゴリズムとは別なのかもしれないが、Wikipediaでも"algorhythm"と書かれていたので許して欲しい(広義のアルゴリズムにはぎりぎり入るのではないだろうか?)。
それは当時の月刊アスキーだか、図書館で借りた本で読んで知った
「モンテカルロ法」と言うものだ。
日本語版のWikipediaによれば、「乱択アルゴリズムと一般に定義される」らしい。
この日本語のWikipediaの内容は、数学を離れて久しい私には難しすぎるが、
私が中学の時に読んだ本には、モンテカルロ法を使った簡単な円周率の求め方が載っていた。

半径2cmの円を考える。
と、書こうとしたが、検索してみたら、おそらく私よりもずっとわかりやすく解説しているサイトがあったので、解説はそちらに譲ることにしよう:
ようするに架空の円を囲む正方形(あるいはその弧)の中に、乱数で点を打っていって、その点が円の外側に何個、内側に何個打たかをカウントし続けて、統計的に円周率を割り出す、というものだ。
いわゆる、数学的アルゴリズムの様に、パラメーターの数字を当てはめると、スパっと答えが出るものではなく、乱数を使ってじわじわと解答に近づいていくわけだ。
この乱数を使う、という点が斬新で、目からウロコが落ちる思いがした。
(Life is randomーー人生ランダムな私になんとピッタリな考え方だろう)
ところで、上のモンテカルロ法の図は、実は最近、あるイベントのために用意したものだ。
そう小飼さんと一緒にパネルディスカッションに参加させてもらったtechstyle社主催の「群衆の叡智サミット2007」のときだ。
nobilog2復活へのリハビリエントリーだ。
小飼さんの記事は、Hatena Questionの「あなたが一番好きなアルゴリズムを教えてください。また、その理由やどんな点が好きなのかも教えてください」がきっかけになった記事のようだ。
私はプログラマーではないが、まだパソコンが8ビットで「マイコン」と呼ばれていた時代に出会って衝撃を覚えたアルゴリズムがある。
もしかしたら一般に言うアルゴリズムとは別なのかもしれないが、Wikipediaでも"algorhythm"と書かれていたので許して欲しい(広義のアルゴリズムにはぎりぎり入るのではないだろうか?)。
それは当時の月刊アスキーだか、図書館で借りた本で読んで知った
「モンテカルロ法」と言うものだ。
日本語版のWikipediaによれば、「乱択アルゴリズムと一般に定義される」らしい。
この日本語のWikipediaの内容は、数学を離れて久しい私には難しすぎるが、
私が中学の時に読んだ本には、モンテカルロ法を使った簡単な円周率の求め方が載っていた。

半径2cmの円を考える。
と、書こうとしたが、検索してみたら、おそらく私よりもずっとわかりやすく解説しているサイトがあったので、解説はそちらに譲ることにしよう:
ようするに架空の円を囲む正方形(あるいはその弧)の中に、乱数で点を打っていって、その点が円の外側に何個、内側に何個打たかをカウントし続けて、統計的に円周率を割り出す、というものだ。
いわゆる、数学的アルゴリズムの様に、パラメーターの数字を当てはめると、スパっと答えが出るものではなく、乱数を使ってじわじわと解答に近づいていくわけだ。
この乱数を使う、という点が斬新で、目からウロコが落ちる思いがした。
(Life is randomーー人生ランダムな私になんとピッタリな考え方だろう)
ところで、上のモンテカルロ法の図は、実は最近、あるイベントのために用意したものだ。
そう小飼さんと一緒にパネルディスカッションに参加させてもらったtechstyle社主催の「群衆の叡智サミット2007」のときだ。