連続一様分布サンプリング; Continuous Uniform Distribution Sampling
概要
連続一様分布とは以下の式で表現される確率分布。なお定義域を\([x_{min}, x_{max}]\)とする。
$$f(x)=\begin{cases} \frac{1}{x_{max}-x_{min}}, & \quad x_{min} \leq x \leq x_{max} \\ 0, & \quad otherwise \end{cases} $$
ソースコード
namespace ExRandom.Continuous {
public class UniformRandom : Random{
readonly MT19937 mt;
readonly double min, max, range;
public UniformRandom(MT19937 mt, double min = 0, double max = 1){
if(mt == null) {
throw new ArgumentNullException();
}
if(!(min < max)) {
throw new ArgumentException();
}
this.mt = mt;
this.min = min;
this.max = max;
this.range = max - min;
}
public override double Next() {
return mt.NextDouble() * range + min;
}
}
}
関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス