1. 程式人生 > >歐幾裏德算法(自寫理解)

歐幾裏德算法(自寫理解)

約數 但是 們的 這樣的 拓展 軌跡 等於 spa --

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咋辦("▔□▔) 自然那結果就是無解啦

歐幾裏德算法(自寫理解)