指数分布サンプリング; Exponential Distribution Sampling
概要
指数分布とは以下の式で表現される確率分布。ある事象が単位時間あたりに起きる回数を\(\lambda\)としたとき、事象の起きる間隔は指数分布に従う。
$$f(x)=\lambda e^{-\lambda x} , \quad x \geq 0 $$
ソースコード
namespace ExRandom.Continuous {
public class ExponentialRandom : Random{
readonly MT19937 mt;
readonly double lambda;
public ExponentialRandom(MT19937 mt, double lambda = 1) {
if(mt == null) {
throw new ArgumentNullException();
}
this.mt = mt;
this.lambda = lambda;
}
public override double Next() {
double u = mt.NextDouble_OpenInterval0();
return -lambda * Math.Log(u);
}
}
}
関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス