首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

漫画算法:辗转除法是什么鬼?

辗转除法, 又名欧几里得算法(Euclidean algorithm),目的是求出两个正整数的最大公约数。它是已知最古老的算法, 其可追溯至公元前300年前。...最后总结一下上述所有解法的时间复杂度: 1.暴力枚举法:时间复杂度是O(min(a, b))) 2.辗转除法:时间复杂度不太好计算,可以近似为O(log(max(a, b))),但是取模运算性能较差。...避免了取模运算,但是算法性能不稳定,最坏时间复杂度为O(max(a, b))) 4.更相减损术与移位结合:不但避免了取模运算,而且算法性能稳定,时间复杂度为O(log(max(a, b))) 本文原本只写到辗转除法就终告结束...由于篇幅所限,本文省略了关于辗转除法原和更相减损术的原理及证明。其实证明过程并不复杂,细心的同学们也可以自己尝试研究一下。谢谢大家的捧场!

33930

辗转除法到求逆元,数论算法初体验

今天是算法和数据结构专题的第22篇文章,我们一起来聊聊辗转除法辗转除法又名欧几里得算法,是求最大公约数的一种算法,英文缩写是gcd。...所以如果你在大牛的代码或者是书上看到gcd,要注意,这不是某某党,而是指的辗转除法。 在介绍这个算法之前,我们先来看下最大公约数问题。 暴力解法 这个问题应该很明确了,我们之前数学课上都有讲过。...辗转除法 接下来就轮到正主——辗转除法出场了,这个算法在《九章算术》当中曾经出现过,叫做更相减损术。...但是我们的计算当中又涉及除法,这个时候应该怎么办? 这个时候就需要用到逆元了,逆元也叫做数论倒数。...总结 今天我们聊了欧几里得定理聊了辗转除法还聊了拓展欧几里得和求解逆元,虽然这些内容单独来看并不难,合在一篇文章当中量还是不小的。

1.4K20
领券