僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
42曲のどれか。
多分ランダムになってる筈。
#!/bin/sh DIV=43 function rand () { RA=`echo ${RANDOM} % ${DIV} | bc` if [ "$RA" -eq "0" ]; then rand fi } while : ; do rand ogg123 -d au $RA.ogg -f - | aplay - sleep 5 done
移行後に(前から?)tdiaryの直下にコピーするのを忘れていた。
今日になってやっと対応。
でも、トラックバック受信を有効にした途端に猛烈なspamの嵐。
これじゃ
^httpなメッセージのreject(tdiaryにおいては、トラックバックの
受信拒否になるみたい)
を外す気にはなれないなぁ。
$ grep TrackBack 200801.tdc | wc -l 77
ようやく5.0p1に上げた。
さっきのランダム再生スクリプトから、関数randだけを
切り出し、10000回実行してみた。
要するに、何番めが多く再生されるか、である。
この場合、2番めの曲は81回(0.8%)しか再生されず、 41番めの曲は551回(5.5%)も再生されている。うーむ。
ぐぐってるうちに、 JMのページに出た。以下、引用。
<引用>
RANDOM
このパラメータが参照される度に、 0 から 32767 までの
ランダムな整数が生成されます。
RANDOM に値を代入すると、
乱数の列を初期化できます。 RANDOM を unset すると、この
変数の特殊な性質は無くなります。後で再び set しても元には
戻りません。
<引用/>
毎回rand()の中で、RANDOM=$RANDOMとやってみる。
#!/bin/sh
DIV=43
function rand () {
RANDOM=$RANDOM
RA=`echo ${RANDOM} % ${DIV} | bc`
if [ "$RA" -eq "0" ]; then
rand
fi
}
rand
echo $RA
で、同じく10000回。を2回繰り返す。
若干均等に近くなった(最大297(3.0%)、最小145(1.5%))が、特定の曲の 再生回数が毎回少なめな点は、あまり改善できなかった。
それにしても、画像の縦寸法がまちまちなのも、なんとかせねば。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。
randomの種にrandomから入れたものしか入れなかったらあまり意味がないと思います。せめて時間とかそのあたりを入れないと...。
なるほど。$RANDOMにnanosecondを入れてみました。<br>かなり平均的な感じになりました。ありがとうございます。