確率統計確率統計
ガンベル分布サンプリング; Gumbel Distribution Sampling

概要
ガンベル分布とは以下の式で表現される確率分布。なんからの確率分布に従う複数の確率変数\(X\)の最大値が従う確率分布である。

$$f(x)=\frac{1}{\beta} exp \left(- \frac{x-\lambda}{\beta} \right) exp \left( -exp \left(- \frac{x-\lambda}{\beta} \right) \right) $$

ガンベル分布

ソースコード

namespace ExRandom.Continuous {
    public class GumbelRandom : Random{
        readonly MT19937 mt;
        readonly double beta, lambda;

        public GumbelRandom(MT19937 mt, double beta = 1, double lambda = 0) {
            if(mt == null) {
                throw new ArgumentNullException();
            }

            if(!(beta > 0)) {
                throw new ArgumentException();
            }

            this.mt = mt;
            this.beta = beta;
            this.lambda = lambda;
        }

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

            return lambda - beta * Math.Log(-Math.Log(u));
        }
    }
}

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

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