Kumaraswamy分布サンプリング; Kumaraswamy Distribution Sampling
概要
Kumaraswamy分布とは以下の式で表現される確率分布。
$$f(x)=a b x^{a-1} (1-x^a)^{b-1} , \quad 0 \leq x \leq 1 $$
ソースコード
namespace ExRandom.Continuous {
public class KumaraswamyRandom : Random{
readonly MT19937 mt;
readonly double inv_a, inv_b;
public KumaraswamyRandom(MT19937 mt, double a = 2, double b = 2) {
if(mt == null) {
throw new ArgumentNullException();
}
if(!(a > 0) || !(b > 0)) {
throw new ArgumentException();
}
this.mt = mt;
this.inv_a = 1 / a;
this.inv_b = 1 / b;
}
public override double Next() {
double u = mt.NextDouble();
return Math.Pow(1 - Math.Pow(u, inv_b), inv_a);
}
}
}
関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス