Elegir n números con suma fija
En algún código quiero elegirn
números aleatorios en[0,1)
que suma a1
.
Lo hago eligiendo los números de forma independiente en[0,1)
y normalizándolos dividiendo cada uno por la suma total:
numbers = [random() for i in range(n)]
numbers = [n/sum(numbers) for n in numbers]
Mi "problema" es que la distribución que salgo es bastante sesgada. Al elegir un millón de números, ninguno se supera1/2
. Por algún esfuerzo he calculado el pdf, y no es bueno.
Aquí está el pdf de aspecto extraño que obtengo para 5 variables:
¿Tiene una idea para un buen algoritmo para elegir los números, que resulte en una distribución más uniforme o simple?