Здравствуйте.
Есть задача генерировать числа в заданном
диапазоне. Причем вероятность появления чисел задается, она не одинакова.
Приведу пример вызова нужной функции:
random([[0, 0], [10, 50], [15, 10], [20, 40]])
Тут диапазон чисел для генерации
от 0 до 20. Вероятность появления 0 - 0%.
10 - 50%, 15 - 10%, 20 - 40%.
Соответственно, например, число 5 появится уже с 25% вероятностью, число 1 с 5% вероятностью и так далее. Количество пар значений на входе в функцию может быть любым, диапазон тоже любым. Генерируемые числа не обязательно должны быть целыми.
Как реализовать такую функцию? Может есть уже готовые реализации?
P.S. В комментариях справедливо подсказали, что сумма вероятностей на моем графике получится больше 100%, что невозможно. Поэтому можно считать что указаны не проценты вероятности, а единицы вероятности.