確率統計確率統計
レシプロカル分布サンプリング; Reciprocal Distribution Sampling

概要
レシプロカル分布とは以下の式で表現される確率分布。

$$f(x)=\frac{1}{x (log(b)-log(a))}, \quad 0 \lt a \lt b, a \leq x \leq b $$

レシプロカル分布

ソースコード

namespace ExRandom.Continuous {
    public class ReciprocalRandom : Random{
        readonly MT19937 mt;
        readonly double a, b;

        public ReciprocalRandom(MT19937 mt, double a = 1, double b = 2) {
            if(mt == null) {
                throw new ArgumentNullException();
            }

            if(!(a > 0) || !(b > 0)) {
                throw new ArgumentException();
            }

            this.mt = mt;
            this.a = a;
            this.b = b;
        }

        public override double Next() {
            double u = mt.NextDouble();

            return Math.Pow(a, u) * Math.Pow(b, 1 - u);
        }
    }
}

関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス

ライブラリライブラリ
確率統計確率統計
線形代数線形代数
幾何学幾何学
最適化最適化
微分方程式微分方程式
画像処理画像処理
補間補間
機械学習機械学習
クラスタリングクラスタリング
パズルゲーム・パズル
未分類未分類