Как правило, линейное уравнение начинается с того 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).