欧几里得算法GCD证明

总结

以前心里想的是,把这个函数记住就可以了,觉得没必要去看原理,但是发现后面做题的时候,这样真不好,不是记不住函数 ,而是很多题,是根据这个欧几里得算法原理来出题的,所以自己还是理解一下,毕竟自己菜是原罪。

证明

求A和B的最大公约数
假设X为最大公约数
间接条件:X | A X|B

假设A >= B
建立方程式A + KB = C = A % B
∵ X | A X | KB
∴ X | A + KB
∴ X | C
∴ GCD(A,B)== GCD(B, A%B)
然后我们就可以不断的往下辗转相除

求GCD(B,C)
B和C最大公约数也是X
何时是个头
GCD(KX , X )
再往下
GCD (X , 0)

时间复杂度 O( logn )

GCD(A,B),我们肯定讨论极限,每次减少的值尽量小
那么举例吧
GCD(KA+KA-1 , KA)这样我们减少的数就是KA,保证A剩余的最大值是B-1,其实就是减少的一半,不断的辗转相除下去,就是logn

发布了130 篇原创文章 · 获赞 5 · 访问量 4970

猜你喜欢

转载自blog.csdn.net/weixin_44224825/article/details/104446718
今日推荐