В каком-то коде я хочу выбрать n
случайные числа в [0,1)
, которые составляют 1
.
Я делаю это, выбирая числа независимо в [0,1)
и нормализуя их путем деления каждогоодин на общую сумму:
numbers = [random() for i in range(n)]
numbers = [n/sum(numbers) for n in numbers]
Моя "проблема" в том, что дистрибутив, который я получаю, довольно искажен.Выбирая миллион чисел, ни одно из них не превысит 1/2
.Некоторым усилием я вычислил pdf, и это нехорошо.
Вот странно выглядящий pdf, который я получаю для 5 переменных:
есть идея для хорошего алгоритма выбора чисел, что приводит к более равномерному или простому распределению?