Имеется функция, которая даёт рандомное число в радиусе [-40 .. 40]
Как сделать так, чтобы числа, близкие к нулю (0, 5, -5) выпадали чаще, чем крайние (40, -35, и т.д.) ?
Условно можно представить в виде графика y(x) = -(x*x*0.061)+100
По горизонтали: число, которое должно выпасть
По вертикали: частота выпадения
Ответ
Задачу всё-таки решил, но не предложенными вариантами. Итак.
Изначально задача звучит так: Создать число в промежутке от 6 до 14. Чем число ближе к 10, тем оно должно выпадать чаще (в самом вопросе я поменял условие задачи, но не суть важно)
Для её решения понадобится два рандомных числа в промежутке [3..7].
Полученные два числа надо сложить друг с другом. Таблица сложения:
Вывод:
Сумма этих двух случайных чисел и есть наше конечное число
В итоге, чем ближе число к 10, тем чаще оно выпадает
P.S. Прочитал данный метод в книге Галёнкина
Комментариев нет:
Отправить комментарий