Я думаю, что стоит отметить, что текущий принятый ответ не дает равномерного распределения:
"Просто сгенерируйте N случайных чисел,
рассчитать их сумму, разделить каждый на
сумма "
Чтобы увидеть это, давайте посмотрим на случай N = 2 и M = 1. Это тривиальный случай, поскольку мы можем сгенерировать список [x, 1-x], выбрав x равномерно в диапазоне (0,1).
Предложенное решение генерирует пару [x / (x + y), y / (x + y)], где x и y равномерны в (0,1). Чтобы проанализировать это, мы выбираем некоторый z такой, что 0
Prob (x / (x + y)
Я провел несколько быстрых вычислений, и оказалось, что единственное решение, которое до сих пор приводило к равномерному распределению, было , предложенное Матти Вирккуненом :
"Сгенерируйте N-1 случайных чисел от 0 до 1, добавьте сами номера 0 и 1 в список, отсортируйте их и возьмите различия соседних чисел."