ラプラス分布サンプリング; Laplace Distribution Sampling
概要
ラプラス分布とは以下の式で表現される確率分布。
$$f(x)=\frac{1}{2 b} exp \left(-\frac{|x-\mu|}{b} \right) $$
ソースコード
namespace ExRandom.Continuous {
public class LaplaceRandom : Random{
readonly MT19937 mt;
readonly double b, mu;
public LaplaceRandom(MT19937 mt, double b = 1, double mu = 0) {
if(mt == null) {
throw new ArgumentNullException();
}
this.mt = mt;
this.b = b;
this.mu = mu;
}
public override double Next() {
double r = mt.NextDouble_OpenInterval01() - 0.5;
return mu - b * Math.Sign(r) * Math.Log(1.0 - 2.0 * Math.Abs(r));
}
}
}
関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス