我知道循环不变量是为了证明问题的正确性,但我不太明白如何提出一个问题,无论问题多么微不足道。这是一个示例,有人可以指出我应该考虑采取哪些步骤。我知道循环中发生变化的所有值都必须包含在我的不变量中。请指导我解决这个问题,我还必须找到后置条件。一个解释比一个答案更有价值;请帮忙。
{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;
}
}
{ ? ? }