欧几里德算法(自写理解)
gcd歐幾里德算法 ?求取最大公約數(shù)gcd(a,b)
???這個(gè)不用多說(shuō)了
extgcd拓展歐幾里德算法 用于求解?ax+by=gcd(a,b)的解
???這個(gè)要多說(shuō)一下
???ax+by=c,(a,b,c都是常數(shù))
???這就是一個(gè)直線方程嘛!(x,y)就是一條直線的軌跡
???但是呢??我們?cè)谟?jì)算機(jī)中經(jīng)常要求一些離散的東西,也就是我們要求整數(shù)解
???這個(gè)咋求呢,就可以用這個(gè)神仙方法extgcd可以來(lái)求
???我們可以用extgcd求解?ax+by=c的整數(shù)點(diǎn)的解
???
???extgcd的內(nèi)容呢:extgcd可以能求gcd----原理嘛,自己慢慢想這個(gè)神仙方法。extgcd不是直接去解我們的方程?ax+by=c的,但是可以間 接求解,extgcd?求解的是什么呢
extgcd?可以直接求解的是?ax+by=gcd(a,b)的解。
也就是說(shuō)我們調(diào)用extgcd可以獲得的結(jié)果是ax+by=gcd(a,b)的一組整數(shù)解。
那我們要求的是什么??是ax+by=c?而不是ax+by=gcd(a,b)啊
那咋辦???我們可以設(shè)置一個(gè)變量?k ???axk+byk=gcd(a,b)*k?這個(gè)很好說(shuō)吧!就是等式兩邊同時(shí)乘k。 ?
如果我們存在整數(shù)k?使得gcd(a,b)*k等于c ??那我們要求的ax+by=c的解就出來(lái)啦
就是我們extgcd?求出的解乘上這個(gè)k
如果不存在這樣的k咋辦("▔□▔)?自然那結(jié)果就是無(wú)解啦
? ?
轉(zhuǎn)載于:https://www.cnblogs.com/DWVictor/p/10283215.html
總結(jié)
以上是生活随笔為你收集整理的欧几里德算法(自写理解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DBvisualizer free 9.
- 下一篇: 2019-1-17王志颖 c语言作业