


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、什么是GCD?GCD是最大公約數的簡稱(當然理解為我們偉大的黨也未嘗不可)。在開頭,我們先下幾個定義:a|b表示a能整除b(a是b的約數)amodb表示a-a/bb(a/b在Pascal中相當于adivb)gcd(a,b)表示a和b的最大公約數a和b的線性組合表示ax+by(x,y為整數)。我們有:若d|a且d|b,則d|ax+by(這很重要!)線性組合與GCD現在我們證明一個重要的定理:gcd(a,b)是a和b的最小的正線性組合。證明:設gcd(a,b)為d,a和b的最小的正線性組合為s*/d|a且d|b,d|so而amods=a-a/ss=a-a/s(ax+by)=a(1-a/sx)-ba
2、/sy亦為a和b的線性組合*.*amodss,amods不能是a和b的最小的正線性組合amods=0,即s|a同理由s|bs為a,b的公約數.s=dJd|sd=s。證畢。由這條定理易推知:若d|a且d|b,則d|gcd(a,b)Euclid算法現在的問題是如何快速的求gcd(a,b)。窮舉明顯不是一個好方法(0(n),所以需要一個更好的方法。首先我們先提出一個定理:gcd(a,b)=gcd(b,a-bx)(x為正整數)。證明:設gcd(a,b)=d,gcd(b,a-bx)=e,貝IJd|a,d|b.d|a-bxd|gcd(b,a-bx),即d|eJe|b,e|a-bxe|bx+(a-bx),即
3、e|ae|gcd(a,b),即卩e|dd=e。證畢。這個定理非常有用,因為它能快速地降低數據規模。當x=1時,gcd(a,b)=gcd(b,a-b)。這就是輾轉相減法。當x達到最大時,即x=a/b時,gcd(a,b)=gcd(b,amodb)。這個就是Euclid算法。它是不是Euclid提出的我不知道,但聽說是在Euclid時代形成的,所以就叫Euclid算法了。程序非常的簡單:functionEuclid(a,b:longint):longint;beginifb=0thenexit(a)elseexit(Euclid(b,amodb);end;Euclid算法比輾轉相減法好,不僅好在速度
4、快,而且用起來也方便。兩種算法都有一個隱含的限制:a=b。用輾轉相減法時,必須先判斷大小,而Euclid算法不然。若ab,則一次遞歸就會轉為gcd(b,a),接著就能正常運行了。擴展Euclid前面我們說過,gcd(a,b)可以表示為a和b的最小的正線性組合。現在我們就要求這個最小的正線性組合ax+by中的x和y。這個可以利用我們的Euclid算法。從最簡單的情況開始。當b=0時,我們取x=1,y=0。當bD0時呢?假設gcd(a,b)=d,貝Igcd(b,amodb)=d。若我們已經求出了gcd(b,amodb)的線性組合表示bx+(amodb)y,貝Igcd(a,b)=d=bx+(amod
5、b)y=bx+(a-a/bb)y=ay+b(x-a/by)那么,x=y,y=x-a/by。這樣就可以在Euclid的遞歸過程中求出x和y。程序:functiongcd(a,b:longint):longint;varp,n,m:longint;beginifb=0thenbeginx:=1;y:=0;exit(a);endelsebeginp:=gcd(b,amodb);n:=x;m:=y;x:=m;y:=n-adivb*m;exit(p);end;end;我們現在還有一個問題:x,y是不是確定的?答案:不是。如果x,y符合要求,那么x+bk,y-ak也符合要求。不確定的原因在于這一句:“當b
6、=0時,我們取x=1,y=0。”實際上y可以取任何正整數。不定方程ax+by=c現在終于到了本文重點:解二元一次不定方程。看起來擴展Euclid算法是不定方程的一種特殊情況,實際上呢,不定方程卻是用Euclid算法解的。對于不定方程ax+by=c,設gcd(a,b)=d,如果ax+by=c有解,則d|c(這也是許多奧數題的切入點)。所以一旦d不是c的約數,那么ax+by=c一定無解。當d|c時,先求出ax+by=d=gcd(a,b)的x和y,貝Ix=x*c/d,y=y*c/d。由上一段可知,只要ax+by=c有一個解,它就有無數個解。Euclid算法還可以求解同余方程axDb(modm)。這其實和不定方程ax+my=b沒有區別。(不定方程和同余方程一般都有范圍限制,這其實也很容易解決,就
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 63169:2020+AMD1:2024 CSV EN Electrical household and similar cooling and freezing appliances - Food preservation
- 【正版授權】 IEC 60826:2003 EN-D Design criteria of overhead transmission lines
- 【正版授權】 IEC 60870-5-104:2006 EN-D Telecontrol equipment and systems - Part 5-104: Transmission protocols - Network access for IEC 60870-5-101 using standard transport profiles
- 護理導論與護理程序
- 醬香酒知識培訓課件
- 糖尿病及護理
- 心臟外科護理手術配合
- 妊娠期糖尿病護理
- 2025年慶八一建軍節主題活動方案策劃書
- 2025年精神文明建設工作方案
- 專題09 產業區位與產業發展【知識精研】高考地理二輪復習
- 2025年部門預算支出經濟分類科目說明表
- 《陸上風電場工程概算定額》NBT 31010-2019
- 2024年山東省事業單位歷年面試題目及答案解析50套
- YB-4001.1-2007鋼格柵板及配套件-第1部分:鋼格柵板(中文版)
- 維生素D教學講解課件
- 診所備案申請表格(衛健委備案)
- 案例收球器盲板傷人事故
- 《雷鋒叔叔_你在哪里》說課稿
- bim畢業設計--精選文檔
- 某紡織廠供配電系統設計(DOC25頁)
評論
0/150
提交評論