Эта страница на первом месте по поиску этой / такой проблемы в Google. Таким образом, помимо уже упомянутых ответов, еще один интересный факт для будущего:
Оставляя третью необязательную переменную в addEventListener () для useCapture / useBubble (по умолчанию для false) создает некоторую проблему при удалении тот же самый исполнитель событий с таким же именем обратного вызова. Я столкнулся с этой проблемой, работая на хроме. Не могу сказать о других браузерах.
Так что упомяните третью переменную явно как «false».
Вы хотите разбить расстояние от 0 до 1.
Выберите n - 1 чисел от 0 до 1, сортируйте их и определите расстояния между ними.
Это будет разбивать пространство 0 на 1, что должно давать случайный большой результат, который вы не получаете.
Тем не менее, при больших значениях n вы обычно можете ожидать, что ваше максимальное значение также уменьшится , просто не так быстро, как ваш метод.
Вам может быть интересно распределение Дирихле , которое используется для генерации величин, сумма которых равна 1, если вы ищете вероятности. Существует также раздел о том, как их генерировать с использованием гамма-распределений здесь .