我知道循环不变是为了证明问题的正确性,但我无法完全理解如何提出一个问题,无论问题多么微不足道。下面是一个例子,有人能指出我应该考虑采取哪一步来提出一个步骤。我知道循环中所有正在变化的值都必须包含在我的不变量中。请指导我解决这个问题,我也必须找到后期条件。一个解释将不仅仅是一个答案;请帮忙。如何找到循环不变
{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