Я предполагаю, что это - вопрос о математике и не вопрос о программировании, но что хороший путь состоит в том, чтобы создать формулу, которая имеет убывающую доходность?
Вот некоторые точки в качестве примера о том, как я хочу, чтобы кривая была похожа.
f(1) = 1
f(1.5)= .98
f(2) = .95
f(2.5) = .9
f(3) = .8
f(4) = .7
f(5) = .6
f(10) = .5
f(20) = .25
Заметьте, что, поскольку вход становится выше, процент уменьшается быстро. Там какой-либо путь состоит в том, чтобы смоделировать функцию, которая имеет очень гладкую и точную кривую, которая говорит это?
Другой способ сказать это при помощи реального примера. Вы знаете в Diablo II, у них есть Волшебная Находка? Существует убывающая доходность для волшебной находки. Если Вы получаете 100%, реальная волшебная находка - все еще 100%. Но больше добирается, Ваша фактическая волшебная находка понижается. Так это говорит, было ли у Вас 1200, Ваша реальная волшебная находка - вероятно, 450%. Таким образом, у них есть функция как:
actualMagicFind(magicFind) = // some way to reduced magic find
Где r - скорость нарастающей убывающей доходности
Это просто экспоненциальный распад
Любая обратная экспоненциальная функция, например f (x) = 1 / (x 2 ) . Измените показатель степени, чтобы отрегулировать крутизну кривой.