考虑 Euclid 算法的这种实现:
function gcd(a, b)
while b ≠ 0
t := b
b := a mod b
a := t
return a
维基百科上的一个很好的证明表明,该算法“总是需要少于 O(h) 的除法,其中 h 是较小数字 b 中的位数”。
然而,在图灵机上,计算 mod b 的过程的时间复杂度为 O(a+b)。我的直觉和一些大型测试告诉我,欧几里德算法的复杂度在图灵机上仍然是 O(a+b)。
关于如何证明这一点的任何想法?