Как правило, линейное уравнение начинается с того y = mx + b
, где b
ваше начальное значение и mx
как вы корректируете начальное значение по мере x
увеличения.
Таким образом , в первой части вашего уравнения, то b
, будет , 10
потому что вы хотите фермы , чтобы начать на 10 продуктов питания.
y = mx + 10
Затем, в вашем случае, вы хотите откорректировать еду, производимую каждые десять ферм. Таким образом, вам нужно разделить на десять, чтобы получить уравнение, которое работает для каждых десяти ферм (при условии, что x / 10
возвращает целое число, то есть 13 / 10 = 1
:
y = m * (x / 10) + 10.
Итак, наконец, нам нужно выяснить, как мы хотим, чтобы еда менялась для каждой x / 10
фермы. В вашем случае вы хотите уменьшить его на 0,5 (5% от 10), что является линейным. Итак, мы получаем:
y = -0.5 * ( x / 10 ) + 10.
Так что для фермы x = 5
мы получаем 5 / 10 = 0, 0 * -0.5 = 0, 0 + 10 = 10
. Для фермы x = 11
мы получаем 11 / 10 = 1, 1 * -0.5 = -0.5, -0.5 + 10 = 9.5
, для фермы 23 мы получим 9.0.
Тогда вам просто нужно рассчитать общую еду для всех ферм.
y = 0
for( x = 0; x < totalFarms; x++ )
{
y += -5 * ( x / 10 ) + 10;
}
Но, возможно, вы на 5%, вы хотели, чтобы оно уменьшилось на 5% от предыдущего значения. То есть 10, 10 * 0.95 = 9.5, 9.5 * 0.95 = 9.025
(в этом случае сумма, которую мы уменьшаем, становится все меньше и меньше). Итак, давайте изменим уравнение. 5%
является экспоненциальным увеличением типа, а экспоненциальная формула y = b*m^x
.
У нас все еще есть b = 10
, и мы должны сделать наше деление на 10 трюков. Так и есть y = 10*m^(x/10)
. m
есть 0.95
, так как мы хотим каждый раз брать 95% стоимости. Так что уравнение для фермы x
есть y = 10*0.95^(x/10)
.