soiran
@soiran
Разработчик, Художник

Комплексная вероятность. Как реализовать генерацию случайного коэффициента по графику?

Я столкнулся с интересной задачей, на которую бы хотел иметь решение. Мне требуется получить случайное число по коэффициенту (min + abs(max - min) * coef), но не просто случайное число, случайность этого числа будет соответствовать графику. Допустим, чтобы рандом чаще всего выдавал коэфициент меньше 0.5, и реже больше 0.5. Я привел ниже иллюстрацию графика. Как такое можно реализовать? (Прошу приводить примеры в виде кода, или же в виде объяснения алгоритма)
5f8593e41d180064156141.png
  • Вопрос задан
  • 188 просмотров
Решения вопроса 2
@dmshar
Все зависит от того, знаете-ли вы формулу вашей ф-ции (квази)плотности распределения. Надеюсь, что у=F(r) известна, и соответственно, известна и функция Ф(y)=r, обратная к ней. Тогда не надо изобретать велосипед, все придумано до нас.
Например: stratum.ac.ru/education/textbooks/modelir/lection2...
На пальцах:
Генерируете равномерно распределенное число в диапазоне от (по вашему рисунку) 0 до 100%. Получаете точку y на оси Y. Потом считаете r=Ф(y).Последовательность таких точек {r} будут генерироваться случайным образом, в строгом соответствии с вашим законом распределения.
Не просто "чаще"-"реже", и именно в соответствии с вашим законом.
Так поступают всегда и все. Реализация на Python - в три строчки.
Ответ написан
Комментировать
soiran
@soiran Автор вопроса
Разработчик, Художник
Первый вариант решения - f(r()), где f = функция графика, r = функция рандома.
Второй вариант - найти проекцию случайной нормали [0, 1] оси x по оси y, но этот вариант менее точный.
Ниже приведена реализация второго варианта:
Ii4DWgiFIFQ.jpg
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
случайность этого числа будет соответствовать графику.
Нужно составить полином этой зависимости. Т.е., сам этот график.

Допустим, чтобы рандом чаще всего выдавал коэфициент меньше 0.5, и реже больше 0.5.
Следующий шаг - это вероятность выпадения одного из параметров (по одной из 2-х осей).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы