Я создаю игру, где плееры могут сделать сплав. Для создания этого менее предсказуемым и более интересным я думал, что длительность и твердость сплава не должны быть вычислены простой формулой, потому что будет чрезвычайно легко найти экстремальное значение, где сплав имеет лучшую статистику.
Так вопросы, там какая-либо формула для функции, где экстремальное значение может быть найдено только путем исследования всех точек? Входные значения будут в процентах: 0,0%-100.0%. Я думаю, что это должно быть похожим на это: половина звуковой волны
Очень простой способ - использовать функцию пары sin, просто меняйте константы и знак для каждого нового игрока. Вот один пример (sin (1.1 * x) + sin (x) + sin (0.9 * x)) ^ 2
Если вы используете это между 10pi и 20pi, у вас будет функция увеличения по среднему с локальными минимумами .
Я думаю, вам не нужна формула - набросайте кучу случайных значений вокруг вашего домена, а затем интерполируйте (подойдет линейная интерполяция) между ними. Затем вы можете даже полностью менять "формулу" при каждом запуске игры, или время от времени, или медленно менять ее со временем, и т.д. и т.п.
Модуляция простой линейной или экспоненциальной функции с помощью тригонометрических функций, частота и амплитуда которых зависят от входа, должно дать вам то, что вы хотите.
Если вам нужно что-то, что очень трудно предсказать, я бы предложил использовать генератор случайных чисел с одним и тем же начальным числом каждый раз. Вы можете использовать его как конверт для любой функции, которую вы придумаете (триггерные функции или что нет), чтобы сделать ее более неровной.
Интересной формулой для использования была бы формула гаммы модели ценообразования опционов Блэка-Шоулза. Она выглядит так:
Вы можете легко заменить переменные, вот график того, как выглядит функция: