選択(の手段によって一様にN - 1つの間隔で均一実数[ 0 、1 ])。 ソート係数ように0 ≤ X 1 ≤ ⋯ ≤ X N - 1。セットするx∈[0,1]n−1n−1[0,1]0≤x1≤⋯≤xn−1
w=(x1,x2−x1,x3−x2,…,xn−1−xn−2,1−xn−1).
w iの部分和によってソートされた復元できるため、マッピングx → wは(n − 1 )です!1に。特に、そのイメージはR nの n − 1シンプレックスです。()ソートの各スワップが線形変換であり、(b)は、前述の式は、線形、及び(c)は線形変換の分布の均一性を保つための均一xは均一性を意味W上のn - 1つのシンプレックスを。xiwix→w(n−1)!n−1Rnxw n−1 特に、の周辺は必ずしも独立していないことに注意してください。w
この3Dポイントプロットは、に対するこのアルゴリズムの2000回の反復の結果を示しています。ポイントはシンプレックスに限定され、シンプレックス上にほぼ均一に分布します。n=3
このアルゴリズムの実行時間はであるため、nが大きい場合は非効率的です。しかし、これは質問に答えます!より良い方法(一般的に)上に均一に分布値を生成するN - 1 -simplex描画するN均一実数(X 1、...は、xはn個の)間隔に[ 0 、1 ]、計算をO(nlog(n))≫O(n)nn−1n(x1,…,xn)[0,1]
yi=−log(xi)
(各を確率1で正にし、それらの合計はほぼ確実に非ゼロになります)yi1
w=(y1,y2,…,yn)/(y1+y2+⋯+yn).
各ので、この作品有するΓ (1 )を意味分布、wはディリクレを有している(1 、1 、1 )分布を-で均一です。yiΓ(1)w(1,1,1)