我知道循環不變是爲了證明問題的正確性,但我無法完全理解如何提出一個問題,無論問題多麼微不足道。下面是一個例子,有人能指出我應該考慮採取哪一步來提出一個步驟。我知道循環中所有正在變化的值都必須包含在我的不變量中。請指導我解決這個問題,我也必須找到後期條件。一個解釋將不僅僅是一個答案;請幫忙。如何找到循環不變
{M > 0 and N >= 0 }
a = M;
b = N;
k = 1;
while (b > 0) {
if (b % 2 == 0) {
a = a * a;
b = b/2
} else {
b = b – 1;
k = k * a;
}
}
{ ? ? }
[我也面臨同樣的問題,希望這個解釋會給你的想法](http://stackoverflow.com/questions/2935295/what-is-the-best-way-of-determining-a -loop-invariant) –
謝謝你,我會看看那個,希望它能幫助你 – Bobby