我不是100%確定三次方總和中的不變量是什麼。在程序中尋找循環不變量來計算立方體的總和?
注意:n總是一個非負值。
僞代碼:
triplePower(n)
i=0
tot=0
while i <= n LI1
j = 0
while j < i LI2
k = 0
while k < i LI3
tot = tot + i
k++
j++
i++
我知道它的凌亂和更簡單的方法可以做,但是這是我應該做的(主要用於算法分析的做法)。
我要拿出三個循環不變式; LI1,LI2和LI3。
我想,對於LI1不變具有一些與TOT做=(I^2(I 2 + 1)^)/ 4(方程總和從0立方體至i)
我不不知道該怎麼做LI2或LI3。在LI2循環使i^3和LI3使i^2,但我不完全知道如何將它們定義爲循環不變量。
如果我在每個while循環體中有3個單獨的總變量,那麼不變量會更容易定義嗎?
感謝您提供任何幫助。
也是這個函數的增長順序:Θ(n^3)?
對於遲到的回覆抱歉。我實際上不得不改變這個問題,現在我對自己的情況有了更好的瞭解。 – 2012-02-10 23:47:20