【发布时间】:2021-04-02 08:32:23
【问题描述】:
def func(no_1,no_2):
a=no_1
b=no_2
while(b):
a,b=b,a%b
return a
其中 no_1 和 no_2 是正实数
我发现这个函数返回 no_1 和 no_2 的最大公因数。首先,我尝试了 (no_1%a 和 no_2%a) ≥ 0 的循环不变性,使得 a、no_1 和 no_2 是正整数,但在终止时,我只能证明 no_1%a = 0 = no_2%a,即根本没有描述功能。那么谁能告诉我这个函数有什么可能的循环不变性来描述它的功能?
【问题讨论】:
标签: python loops loop-invariant