擴(kuò)展GCD(求逆元,解同余方程等等)

首先要知道gcd函數(shù)的基本性質(zhì):
gcd(a,b)=gcd(b,a)=gcd(|a|,|b|)=gcd(b,a%b)//已通過代碼驗(yàn)
不知道輾轉(zhuǎn)相除法的請(qǐng)點(diǎn)這里

擴(kuò)展歐幾里得算法:
對(duì)于不完全為 0 的非負(fù)整數(shù) a巷怜,b腾夯,gcd(a旋炒,b)表示 a呻拌,b 的最大公約數(shù)洗搂,必然
存在整數(shù)對(duì) x烤咧,y 腹暖,使得 k*gcd(a,b)=ax+by铡恕。
代碼如下:

int exGcd(int a,int b,int &x,int &y)//求出來的x,y就是這么多了.相當(dāng)于全局變量
{
    if(b==0)
    {
        x=1;y=0;
        return a;
    }
    int r=exGcd(b,a%b,x,y);
    int t=x;x=y;y=t-a/b*y;
    return r;//r為a,b的最大公約數(shù).
}

對(duì)以上代碼的一些解釋.
設(shè) a>b琢感。
1,顯然當(dāng) b=0探熔,gcd(a驹针,b)=a。此時(shí) x=1诀艰,y=0柬甥;
2墙牌,a>b>0 時(shí)
設(shè) ax1+ by1= gcd(a,b);
bx2+ (a mod b)y2= gcd(b,a mod b);
根據(jù)樸素的歐幾里德原理有 gcd(a,b) = gcd(b,a mod b);
則:ax1+ by1= bx2+ (a mod b)y2;
即:ax1+ by1= bx2+ (a - [a / b] * b)y2=ay2+ bx2- [a / b] * by2;
也就是ax1+ by1 == ay2+ b(x2- [a / b] *y2);
根據(jù)恒等定理得:x1=y2; y1=x2- [a / b] y2;
這樣我們就得到了求解 x1,y1 的方法:x1,y1 的值基于 x2暗甥,y2.
(因?yàn)閤2,y2就是第一個(gè)遞歸來的,所以就可以根據(jù)遞歸來求出x1,x2).
上面的思想是以遞歸定義的,因?yàn)?gcd 不斷的遞歸求解一定會(huì)有個(gè)時(shí)候 b=0捉捅,所以遞歸可以結(jié)束撤防。
擴(kuò)展歐幾里德算法
擴(kuò)展歐幾里德算法是用來在已知a, b求解一組x,y使得ax+by = k
gcd(a, b) =d(解一定存在棒口,根據(jù)數(shù)論中的相關(guān)定理)(即解一定存在,且答案為gcd(a,b)的整數(shù)倍)(所以下次看到要馬上想到啊!!!)
//求出來的x是滿足方程最小的那個(gè)x,所以有可能為負(fù)數(shù),轉(zhuǎn)換成滿足方程的最小正數(shù)的方法是(x%a+a)%a,所以要根據(jù)題意來不斷變換.

這個(gè)算法主要用于求//說實(shí)話,這個(gè)遇到題還真不好分析,真的只有多做題,提高自己的知識(shí),再去做吧.
1:求解不定式
2:求解模線性方程(線性同余方程)
3:求解模的逆元

這里對(duì)求解不定式再做一定的說明,所有的我們都轉(zhuǎn)換成求ax+by=gcd(a,b),然后再根據(jù)題意在方程的兩邊同時(shí)乘一定的數(shù)從而轉(zhuǎn)換成我們要求的那個(gè)方程.然后考慮下x的正負(fù)就可以了.

具體操作步驟請(qǐng)看水題poj1061

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寄月,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子无牵,更是在濱河造成了極大的恐慌漾肮,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茎毁,死亡現(xiàn)場(chǎng)離奇詭異克懊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)七蜘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門谭溉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人橡卤,你說我怎么就攤上這事扮念。” “怎么了碧库?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵柜与,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我嵌灰,道長(zhǎng)弄匕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任伞鲫,我火速辦了婚禮粘茄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秕脓。我一直安慰自己柒瓣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布吠架。 她就那樣靜靜地躺著芙贫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪傍药。 梳的紋絲不亂的頭發(fā)上磺平,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天魂仍,我揣著相機(jī)與錄音,去河邊找鬼拣挪。 笑死擦酌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菠劝。 我是一名探鬼主播赊舶,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赶诊!你這毒婦竟也來了笼平?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤舔痪,失蹤者是張志新(化名)和其女友劉穎寓调,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锄码,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夺英,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滋捶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秋麸。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖炬太,靈堂內(nèi)的尸體忽然破棺而出灸蟆,到底是詐尸還是另有隱情,我是刑警寧澤亲族,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布炒考,位于F島的核電站,受9級(jí)特大地震影響霎迫,放射性物質(zhì)發(fā)生泄漏斋枢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一知给、第九天 我趴在偏房一處隱蔽的房頂上張望瓤帚。 院中可真熱鬧,春花似錦涩赢、人聲如沸戈次。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怯邪。三九已至,卻和暖如春花墩,著一層夾襖步出監(jiān)牢的瞬間悬秉,已是汗流浹背澄步。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留和泌,地道東北人村缸。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像武氓,于是被迫代替她去往敵國和親王凑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容