Vamos primeiro assumir que você deseja provar dentro de
x + y + z = 1
0 ≤ x ≤ 1
0 ≤ y ≤ 1
0 ≤ z ≤ 1
Isso não faz muita diferença, pois o ponto de amostra ainda estará na área solicitada com alta probabilidade.
Agora você fica com a amostragem de um ponto a partir de um simplex . No exemplo 3d, você obtém um 2d simplex (triângulo) realizado em 3d.
Como escolher um ponto uniformemente aleatoriamente foi discutido neste post do blog (veja os comentários).
n−1(0,1)01n+1n1
n=40.4 0.2 0.1
0 0.1 0.2 0.4 1
0.1 0.1 0.2 0.6
x+y+z=1
dd−1. Portanto, se você fizer uma amostragem uniforme do hipercubo, isso não fornecerá uma amostra uniforme no simplex. No entanto, se você fizer uma amostra do hipercubo com uma distribuição exponencial apropriada, esse efeito será cancelado. A Figura fornece uma idéia de como os dois métodos serão amostrados. No entanto, prefiro o método de "classificação" devido à sua forma simples. Também é mais fácil de implementar.