ベンフォードの法則

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか
をやっと読み終えた。素晴らしい本だった。
たとえば符号なしの整数xが2のべき乗であるかどうかを判定するにはどうすればいいか? これは x & (x - 1) という式の結果が0かどうかで判定できる。この式はxの1であるビットのうちで一番右のものを0にするという作用をもつため、2のべき乗のときには結果としてすべてのビットが0になり、そうでないときはいずれかのビットが1のまま残るからである。
また、符号なし32ビット整数nを3で割った商qは、次のようにすれば除算を使わずに乗算とシフト演算だけで計算できる。
q = 0xAAAAAAAB * n / 2^33
0xAAAAAAAB = (2^33 + 1) / 3という数値なので、結果として q = n/3 + n/(3*2^33) を計算しており、さらに2項目が任意の32ビット整数nに対して1/3より小さいことが保証されているからである。
この本にはこの手の一人では思いつくことができないような最適化手法が山のように載っており、コンパイラ作成者やアセンブラでゴリゴリ書く人は必読だろうし、そうでなくても十分楽しめると思う。

で、この本の中に、自然界に現れる数値の先頭桁の分布が偏りについての記述がある。先頭桁が1である確率は1/9でなく約30%にも達し、2では17%に減少、9になるとたったの4.5%しかないという話が載っている。
ググってみると世間ではベンフォードの法則と呼ばれているようだ。この本にはベンフォードの法則の数学的な分析も載っていて、その最初の部分だけ抜粋すると
今、10進数で先頭桁の分布を考えてみよう。そして、「科学的」記法(たとえば6.022*10^23)で表される、長さ、体積、質量、速度などの、単位を持つ数の大きな集合があると仮定する。もし、このような数の集合に属する大きな数の先頭桁が破綻なく定義された分布関数を持っていれば、それはインチやセンチメートル、あるいはポンドやキログラムなどの単位とは独立していなければならない。したがって、その集合の中のすべての数値にどのような定数を掛けても、先頭桁の分布は変化しないはずである。たとえば、2を掛けることを考えると、先頭の桁が1である数値(1.0から1.999...に10の冪を掛けたもの)の個数は、先頭桁が2または3である数値(2.0から3.999...に10の冪を掛けたもの)の個数と等しくならなければならないといえる。なぜなら、長さの単位がインチであるかハーフインチであるか、質量の単位がキログラムであるかハーフキログラムであるかなどは問題になるはずがないからである。
このような考えから分布関数を計算すると、結局のところ先頭桁がDである確率は log(D+1) - logD と計算でき、したがって先頭桁が1の確率は log(2/1) = 0.3010 となる。

実際に下記のURLの末尾のほうに、各種の数値の集合に対してベンフォードの法則に従うか検証した表がある。たしかに綺麗にしたがっていて驚いてしまう。
http://mathworld.wolfram.com/BenfordsLaw.html

こんなに重要な法則を今まで知らなかったのがショックだ。これコーディングのときにも知っておくとおおいに役に立ちそうだなあ。

経県値

経県値&経県マップ
http://www.geocities.jp/karasugawahekiheki/keiken-map.html

167点でした。来年は沖縄だな。できれば車で行きたいところだけど、カーフェリーが大阪-那覇で片道9万弱かかるんだよなあ。これはさすがにきっついのう。

本棚.org

本棚の整理のついでに、遅ればせながら私も本棚.orgmiyanoの本棚を作成してみた。
なるほど、これは面白いな。他人の本棚を延々と眺めてしまう。これがmixiみたいなSNSと統合されたら、かなりの価値をもったサービスになりそう。

やってみて驚いたのが、ちょっと本棚を辿ると知り合いや有名人にすぐに行き着いてしまうことだ。意外とネットの世界も狭いのかもしれない。

ところで、現在の登録数トップの suchiさんて、やっぱり前の会社の先輩の suchiさんですよね。さすがだ。

google&nVIDIAカーナビ

凄そう。やっぱカーナビは3Dでヌルヌル動いてくれないとね。いまのカクカク表示じゃちっとも嬉しくない。
発売してくれないかな。
http://response.jp/issue/2005/1110/article76369_1.html

東京商工リサーチ

今日、東京商工リサーチから電話がかかってきた。

「1,2分ほどよろしいですか?」っていうので、いろいろ質問に答えていたんだが、登記簿謄本に載っている情報をひととおり確認するだけでちょうど2分ぐらい経過。
まあちょっと時間すぎてるけど、これだけで終わりかと思ったら、「従業員数は?」「取引銀行は?」「売上高は?」「仕入先は?」「取引先は?」「利益は?」とずるずるといつまでも質問しやがる。5分ぐらいたったところで、「いつまで続くのでしょうか?」と聞いたら「答えたくなければ終っていいですよ」との返答。さすがにムカッときてじゃあ、すみませんが切りますといったら、速攻で「ありがとうございました。ガチャ」

時間をオーバーしたら、ほんの一言「すみません、よろしかったらもうX分お願いできますでしょうか?」ぐらいいう必要があると思うのだが、そういうのが一切なかった。そちらの利益のために親切心で洗いざらい情報話してるんだから、それなりに丁寧に応対する必要があると思うんだが...。ノルマが厳しくて一件一件丁寧にやってる暇はないのかもしれないが、企業の情報で食ってる割にこの態度はどうかと思った。 これ絶対評判悪いと思うなー。

帝国データバンクからも電話こないかな。応対を比べてみたい。

<< 12/25 >>