c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法

c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法

ID:33769096

大?。?8.77 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2019-03-01

c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法_第1頁(yè)
c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法_第2頁(yè)
c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法_第3頁(yè)
c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法_第4頁(yè)
c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法_第5頁(yè)
資源描述:

《c語(yǔ)言實(shí)現(xiàn)歐幾里得算法和擴(kuò)展歐幾里得算法》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、1、歐幾里得算法1.1原理闡述歐幾里得算法求最大公約數(shù)原理主要依賴(lài)于以下定理:gcd(a,b)=gcd(b,a%b)。其證明過(guò)程如下:a可以表示成a=kb+r,則r=amodb假設(shè)d是a,b的一個(gè)公約數(shù),則有d

2、a,d

3、b,而r=a-kb,因此d

4、r因此d也是(b,amodb)的公約數(shù)因此(a,b)和(b,amodb)的公約數(shù)是一樣的,其最大公約數(shù)也必然相等,得證。1.2算法設(shè)計(jì)歐幾里得算法通過(guò)對(duì)兩數(shù)進(jìn)行求余,利用gcd(a,b)=gcd(b,a%b)定理不斷反復(fù)循環(huán),可以得到兩者的最大公約數(shù)。具體流程

5、圖如下:開(kāi)始對(duì)a和b進(jìn)行賦值b=ta=bt=mod(a,b)結(jié)束輸出最大公約數(shù)ba%b=0NY51.3C語(yǔ)言編程實(shí)現(xiàn)以下是C語(yǔ)言程序代碼:#includelongEucli(longa,longb,long&n){if(b==0)returna;{n=n+1;returnEucli(b,a%b,n);}}intmain(){longa,b,n=0,d,t=0;printf("enterthefirstnumber:");scanf("%ld",&a);printf("enterth

6、esecondnumber:");scanf("%ld",&b);if(a

7、示a,b的最大公約數(shù),必然存在整數(shù)對(duì)x和y,使得gcd(a,b)=ax+by。2.2算法設(shè)計(jì)開(kāi)始擴(kuò)展歐幾里得算法,精髓在于對(duì)x和y的賦值。對(duì)于a'=b,b'=a%b而言,我們求得x,y使得a'x+b'y=Gcd(a',b')由于b'=a%b=a-a/b*b那么可以得到:a'x+b'y=Gcd(a',b'),因而bx+(a-a/b*b),y=Gcd(a',b')=Gcd(a,b)進(jìn)而可得ay+b(x-a/b*y)=Gcd(a,b)因此對(duì)于a和b而言,他們的相對(duì)應(yīng)的p,q分別是y和(x-a/b*y)。具體流

8、程圖如下:x=ty=x-(a/b)*yt=y結(jié)束輸出最大公約數(shù)a*x+b*yb=0輸入a和b52.3C語(yǔ)言編程實(shí)現(xiàn)以下是C語(yǔ)言程序代碼:#includelongexEucli(longa,longb,long&x,long&y,long&n){if(b==0){x=1;y=0;returna;}n+=1;longr=exEucli(b,a%b,x,y,n);longt=y;y=x-(a/b)*y;x=t;returnr;}intmain(){longa,b,x,y,n=0,t;prin

9、tf("enterthefirstnumber:");scanf("%ld",&a);printf("enterthesecondnumber:");scanf("%ld",&b);if(a

10、,對(duì)12345678和76512348兩數(shù)進(jìn)行最大公約數(shù)的求解中,兩種遞歸算法的迭代次數(shù)都是12次。但是,有所不同的是,在歐幾里得算法中,每次迭代進(jìn)行的操作是對(duì)a和b求余數(shù)。而在擴(kuò)展歐幾里得算法中,每次迭代時(shí),除了要做一次求商的之外,還要做一次乘法和減法。因此,運(yùn)用歐幾里得算法和擴(kuò)展歐幾里得算法對(duì)兩個(gè)整數(shù)求最大公約數(shù)時(shí),歐幾里得算法更為高效。5

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。