Я хочу сгенерировать число, близкое к нулю, с определенным общим диапазоном. Например, допустим, я хочу, чтобы число упало до 10 90% времени, но есть небольшая вероятность, что оно будет 15, 20 или даже 30. Чем выше число, тем ниже вероятность его получения.
Я пытался найти что-то с ключевыми словами "взвешенная вероятность", но не могу найти ничего, что ведет в правильном направлении.
Обновление:
В итоге я использовал преобразование Бокса-Мюллера (см. Принятый ответ). Вот простой код, который я написал:
const E = 2.71828183;
function getRandomCurvedValue(temp.median, temp.density) {
return this.getCurvedValue(random(0, 1), temp.median, temp.density);
}
function getCurvedValue(temp.value, temp.median, temp.density) {
return temp.median + (temp.density * log(E, (temp.value / (1 - temp.value))));
}