数论 欧几里得与扩展欧几里得
生活随笔
收集整理的這篇文章主要介紹了
数论 欧几里得与扩展欧几里得
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
歐幾里得算法:
求a,b的最大公約數
gcd(a,b)= gcd(b,a%b)
擴展歐幾里得算法:
如果a,b是整數,一定存在x和y使得ax+by=gcd(a,b)
也就是ax+by=m的話,m一定是gcd(a,b)的倍數
假設當前我們在求的時a和b的最大公約數,而我們已經求出了下一個狀態:b和a%b的最大公因數,并且求出了一組x1和y1使得 : b * x1+(a%b) * y1 = gcd
結論: x = y1 , y = x1 – a / b * y1
得到的是特解,如何由特解推出其他的整數解:
對于關于x,y的方程a * x + b * y = g 來說,讓x增加b/g,讓y減少a/g,等式兩邊還相等。
對于ax+by=c的一組解(x0,y0),則它的任意整數解都可以寫成(x0+k * b1,y0+k * a1)其中 b1 = b / gcd(a,b), a1 = a/gcd(a,b).
我們就可以用 (x0 % b1 + b1 ) % b1得到它的最小正整數解了
此處x0= x * c / gcd(a,b)
總結
以上是生活随笔為你收集整理的数论 欧几里得与扩展欧几里得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server系统数据库–模型数据
- 下一篇: mp3转换成mp4,这个方法很简单