统一选择(通过间隔的均匀实数)。 对系数进行排序,以使。组 ñ - 1 [ 0 ,1 ] 0 ≤ X 1 ≤ ⋯ ≤ X ñ - 1X ∈[0,1 ]n − 1n − 1[ 0 ,1 ]0 ≤ X1个≤ ⋯ ≤ Xn − 1
w =( x1个,X2− x1个,X3− x2,… ,xn − 1− xn − 2,1 − xn − 1)。
因为我们可以通过的部分和来恢复排序的,所以的映射为至1; 特别是它的图像是的单纯形。因为(a)每种交换都是线性变换,(b)前面的公式是线性的,(c)线性变换保持分布的均匀性,所以的均匀性意味着在单工。 特别要注意的是的边际不一定是独立的。w i x → w(n − 1 )!n − 1 R n x w n − 1X一世w一世x → w(n − 1 )!n − 1[RñXw n − 1w
此3D点图显示了该算法2000次迭代的结果。这些点仅限于单纯形,并大致均匀地分布在单纯形上。n = 3
由于此算法的执行时间为,因此对于大效率不高。但这确实回答了这个问题!在 -simplex 上生成均匀分布值的更好方法(通常)是在间隔上绘制均匀实数,然后计算ñ ñ - 1 Ñ (X 1,... ,X Ñ)[ 0 ,1 ]O(nlog(n))≫O(n)nn−1n(x1,…,xn)[0,1]
yi=−log(xi)
(这使每个概率为,因此它们的和几乎肯定非零)并设置 1yi1
w=(y1,y2,…,yn)/(y1+y2+⋯+yn).
之所以,是因为每个都有一个分布,这意味着具有一个Dirichlet分布-并且是均匀的。 Γ (1 )瓦特(1 ,1 ,1 )yiΓ(1)w(1,1,1)