Загалом, лінійне рівняння почнеться з того 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).