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