2014-06-22 44 views
-1

有沒有一個簡單的公式來計算這個?正在尋找一個公式來代替循環

var quantity = 10 
var starting_price = 10 

var cost = 0 
var price = starting_price 
for (var n=1; n<=quantity; n++) { 
    cost += price 
    price += price * 0.01 
} 

console.log('final price: '+price) 
console.log('total cost: '+cost) 

所以1將耗資10,2將耗資20.1,3將花費30.3,4將花費40.6,5將耗資51是否有一個簡單的公式,我可以用它來計算這個,而不是做一個循環?

+0

計算什麼?你的計算是基於循環遞增變量? – tymeJV

+0

更新了問題以便更有意義。 – Dan

回答

1

這種問題可以總是被要求Wolfram Alpha的:

對於價(n)的

問題:f(0) = 10, f(n) = f(n-1) + f(n-1) * 0.01

答案:F(N)= 10 ^(1 -2N)101^N

對於成本(n)的

問題:g(n) =10^(1-2n) 101^n, f(0) = 0, f(n) = f(n-1) + g(n-1)

答案:F(N)= 10 ^(3-2n)101^N - 1000

翻譯爲JavaScript:

function price(n) { 
    return Math.pow(10, 1 - 2*n) * Math.pow(101, n); 
} 

function cost(n) { 
    return Math.pow(10, 3 - 2*n) * Math.pow(101, n) - 1000; 
} 

這樣的公式的名稱是recurrence equation,你學會了它,例如在你的第一學期作爲CS大學生。解決一些例子後,「手動」很容易做到。


OP的變化後:

對於價(n)的

問題:f(0) = c, f(n) = f(n-1) + f(n-1) * d

答案:F(N)= C *(d + 1)^n其中c = 10,d = 0.01

對於成本(n)的

問題:g(n) =c (d+1)^n, f(0) = 0, f(n) = f(n-1) + g(n-1)

答案:F(N)= C/d((d + 1)^ N - 1)

要查看兩個結果都是一樣的:

問:c/d ((d+1)^n - 1) = 10^(3-2n) 101^n - 1000 where c = 10, d = 0.01

回答:真

+0

謝謝!但是,如果起始價格變化,公式看起來會改變。我更新了我的問題,以便更有意義。 – Dan

+0

你沒有看看Wolfram Alpha,是嗎?我更新了我的答案。 – kay