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