Jeans & Development:2009年 06月の記事

円周率の計算 [プログラミング]

2009年6月21日

ちょっと訳有って、円周率(π、パイ、pi)を、コンピューターに計算させてみた。とりあえず、例によって、PHPで。

円周率の計算は、手作りコンピューターでやろうとしていることなので、アルゴリズムとしては最も簡単なものを利用した。最初に作成したスクリプトは、以下のとおり。

for ($max=1;$max<=8192;$max=$max*2) {
    $t=time();
    echo "$max: ".calc_pi($max)."  (".(time()-$t).")\n";
}

function calc_pi($max) {
    $total=0;
    for ($x=0;$x<$max;$x++) {
        for ($y=0;$y<$max;$y++) {
            if ($x*$x + $y*$y < $max * $max) $total++;
        }
    }
    $pi=4 * ( $total/($max*$max) );
    return $pi;
}

正方形の内部にまんべんなく点を打ったとき、その点から一つの頂点までの距離が正方形の辺の長さより短いかどうかをピタゴラスの定理を用いて判断することで、円の内部かどうかを調べ、円の面積から円周率を計算している。

実行結果は、以下のようになった。
1: 4  (0)
2: 4  (0)
4: 3.75  (0)
8: 3.5  (0)
16: 3.34375  (0)
32: 3.25390625  (0)
64: 3.19921875  (0)
128: 3.170166015625  (0)
256: 3.15673828125  (0)
512: 3.1490936279297  (0)
1024: 3.1453971862793  (1)
2048: 3.1435289382935  (2)
4096: 3.1425535678864  (10)
8192: 3.1420764327049  (40)

VBScriptで、クリップボードに文字列をコピーする [プログラミング]

2009年6月7日

Windows NTのcmd.exeでは、ファイルをcmdのウインドウにdrag&dropすることで、ファイルのフルパスを入力することができた。これは、XP以降ではできなくなったようで(もしかしたら、Vista以降かな?)、不便を感じたので、SendToからファイルパスをクリップボードにコピーするスクリプトを書いてみた。

変な話 [General]

2009年6月5日

本来は日記ブログに書くべき内容なのだが、少し思うところあってこちらに書いてみる。

先日、NHKでニュースを見ていたときのこと。高齢者ドライバーの話になっていた。Webでの当該ニュースへのリンクを見つけられないのだが、大元はたぶんこれ。実際にニュースとして聞いたものを要約すると次のような感じであった。

愛媛県では高齢者率が高く、25%の人が高齢者である。高齢者ドライバーによる交通事故も年々増加し、去年は事故全体の16%が高齢者ドライバーによるものであった。増加する高齢者ドライバーの事故に関して、愛媛県でどのような対応をしているのか、追った。(以下略)

さっと聞き流すともっともな内容であるが、良く考えるとこれは少し変な話である。全体で25%の方が高齢者であるのに対し、事故を起こした高齢者ドライバーの率が16%であるというのは、高齢者ドライバーが優秀であることを示しているのではないか?

愛媛県の人口14万人のうち、3万五千人が高齢者、高齢者以外は10万五千人である。仮に交通事故の総件数が100だと仮定すると、高齢者ドライバーによる事故が16件、高齢者でないドライバーによる事故が84件。これらの値から、高齢者ではおよそ2200人に一人が事故を起こし、高齢者以外ではおよそ1300人に一人が事故を起こしていることになる。このデータを見る限り、高齢者ドライバーは優秀ドライバーなのだ。