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