待ち行列

待ち行列の統計の問題。

無限の長さの待ち行列があり、サービス終了者は出口で、券を置いていくものとする。一定時間毎に券の枚数を記録することにより、その間のサービス終了者数がわかるものとする。そのとき、サービスの分布に関して何がわかるか?指数分布だとしたときのパラメータの推定は?


演算子+=は、C++ではメソッドだが、C#では、代入の簡略表記にすぎない。構造体ならばよいが、クラスでは代入であることを意識すべきだ。 a=...;//(1) a+=...;(2)で、(1)と(2)で、aは指しているものが異なる。基本的にクラスでは+=は使わずにAddのようにメソッドに使うべきだろう。例外はdelegateか。


デリゲートのハッシュコードはメソッドで決まるようだ。オブジェクトは関係ない。別々にnewしても同じハッシュコードになるのは気持ち悪い。


ここ半年近く、高速化を含むプロジェクトをしていたが、行き詰っていた。アルゴリズムは、大ループがあり、その中はステップ1、ステップ2に分かれている。ステップ1とステップ2の両方に成功すると、そこで大ループは終了して成功。

ステップ2の計算時間は、ステップ1のおよそ数十分の一、当然、高速化の検討は、ステップ1が主体となるが、うまくいかなかった。ステップ2でも問題があり、ステップ2自体を修正を行った。この修正により、ステップ2の1回当りの計算時間は数倍となった。しかし、トータルの計算時間は、数分の一になった。理由は、ステップ2の成功する確率が高まったためである。早く気づけばよかったのだが、とりあえず、納期前にできたのでよしとする。