Виберіть рівномірно (за допомогою рівномірних виводів в інтервалі ). Сортуйте коефіцієнти так, щоб . Встановити n - 1 [ 0 , 1 ] 0 ≤ x 1 ≤ ⋯ ≤ x n - 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 - 1 wxiwix→w(n−1)!n−1Rnxw n−1w

Цей 3D-точковий графік показує результати 2000 ітерацій цього алгоритму при . Точки приурочені до симплексу і приблизно рівномірно розподілені по ньому.n=3
Оскільки час виконання цього алгоритму дорівнює , він є неефективним для великих . Але це відповідає на питання! Кращий спосіб (загалом) для отримання рівномірно розподілених значень на -простому - намалювати рівномірних цифр на інтервалі , обчислитиn n - 1 n ( x 1 , … , x n ) [ 0 , 1 ]O(nlog(n))≫O(n)nn−1n(x1,…,xn)[0,1]
yi=−log(xi)
(що робить кожен позитивним з ймовірністю , звідки їх сума майже напевно не нульова) і встановлюємо 1yi1
w=(y1,y2,…,yn)/(y1+y2+⋯+yn).
Це працює, тому що кожен має розподіл , що означає, що має розподіл Діріхле - і це рівномірно. Γ ( 1 ) w ( 1 , 1 , 1 )yiΓ(1)w(1,1,1)
![[3D-точка 2]](https://i.stack.imgur.com/W8fSm.png)