渋滞学をやっている人に聞いたことがある。
列の最後尾に着いた瞬間から1分間待つ。
(自分より前に並んでいる数÷自分よりに後ろに並ぶ人数)分間、待つ。というのが公式だそうだ。
M/M/1モデルにおいて平均待ち時間は
tw=a/(1-a)tsであるが
単純なケースでは、待ち客数がわかれば、Lq/λでも求められる。
Lq=待ち客数なので、自分が最後尾なら前にいる人間全員が待っている人間全員を数えればよい。
で、平均到着率(λ)は1分後に自分の後ろに並んだ人間を数えれば計算できる。1で割れば、そのまんま1分あたりの到着率となる。
おおー。
一通り組み終わる。
Steteの保持をbyteからcharに変える。javaのbyteだとマイナス符号が勝手に入るのでよろしくない。unsignedがないのね。
ワンパスを実行。ざっくり流してエラーはないが、正解でもない。
暗号化して復号したら、やっぱり暗号文。
暗号化に以前に、鍵拡張がおかしい。
仕様書も書いてないから当然といえば当然。仕様書が書けるタイプのものではないし、作りながら理解していくのが早いと考える。
さあ、ここからが本番だ。
ns-2ではMRG32k3aという乱数系が使われているとのこと。
コンピュータでサイコロが振れるわけはない。一様にランダムな分布が得られる数式があって、擬似乱数を生成しているのは有名な話。で、たいていの言語にはrandomみたいなライブラリが用意されていている。けど、それってどうよ?という話を聞く。
Linuxのrand関数なんてのはシミュレーションの世界では避けてられているらしい。
まず、乱数の種に日付を入れるのはよくあることだけど、再現性がないのでよろしくない。最低限、何をタネにしたかの記録は必要。ヘンに日付を使っちゃうと、そういうところに意識が行かなくなるぞと。
もうひとつが、周期の問題。乱数の結果を次のタネに使う関係で、いつかは、最初にセットしたタネに戻る可能性がある。ということ。つまり、どこかのタイミングで一周しちゃう。こういった偏りが発生すると乱数の信用性がなくなる。だから、乱数アルゴリズムはちゃんとしたのを使おうよ。だって。
1巻から読まないの。とりあえず最新刊を買から。と、言ったらビックリされた。つまんなかったらそれでおしまいにすればいいかなと。だって、人気があっても最初の頃って面白くなかったりするし。途中から読んでも話がわかるようにできているし。