SewiGの日記
2006-04-24 [月] [長年日記]
■ [Programming] fortuneがなかった
大学のワークステーションにfortuneが入ってませんでしたorz
slが入ってるくらいシャレの通じるワークステーションなはずなのになぁ。そこで、fortuneのソースコードを持ってきてコンパイルしなおしたら動きました。
と、ここで終わっては何も面白いことがないので、2ch fortune形式のcookieを読み込ませるようにしてみました。普通のfortune形式は行単位、2ch fortuneは%区切りで複数行表示できます。
ポイントとしては、日付が変わるまでは出力が同一に、ある程度は人によって出力が異なるように、そして毎日ランダムになるように、といったところです。
前2つについては、乱数の種として、例えば、日付とホスト名を与えれば良いでしょう。最後の項目ですが、ネタデータのサイズはとても大きいので、要素数がいくつあるかを走査した後に乱数を決定してアクセスしたのでは効率が悪いので、1回の走査でランダムに要素を取り出すようにします。
1番目の要素はとりあえず採用しておく。 2番目の要素は1/2の確率で採用する。 3番目の要素は1/3の確率で採用する。 ・・・ N番目の要素は1/Nの確率で採用する。
としていくと1回の走査でランダムに要素を取り出せます。ほら、これでfortune完成。あとは自分好みにcookieを作って .cshrc にでも入れておけば楽しい環境が完成しますよ。誰か、萌えfortuneを作ってください…