【演算法分析與設計】輾轉相除法
輾轉相除法
輾轉相除法又稱歐幾里德演算法,是指用於計算兩個正整數a,b的最大公因數的一種演算法。
廣泛應用於數學和計算機兩個方面。
計算公式:gcd(a, b) = gcd(b, a%b)
。
高一數學必修三就有講了,學起來也很簡單啦……
輾轉相除法的一些特點
- 以除法為主。
- 兩整數差值較大時運算次數較少。
- 相除餘數為0時得到結果。
- 是迴圈表示的遞推式子,也可以遞迴實現。
輾轉相除法的證明
設兩數為a, b(a>b),用gcd(a, b)表示a, b的最大公約數,r=a (mod b) 為a除以b的餘數,k為a除以b的商,即a÷b=kr。輾轉相除法即是要證明gcd(a,b)=gcd(b,r)。
第一步:令c=gcd(a,b),則設a=mc,b=nc。
第二步:根據前提可知r =a-kb=mc-knc=(m-kn)c。
第三步:根據第二步結果可知c也是r的因數。
第四步:可以斷定m-kn與n互質(假設m-kn=xd,n=yd (d>1),則m=kn+xd=kyd+xd=(ky+x)d,則a=mc&#
相關文章
- 證明:輾轉相除法與更相減損術
- 輾轉相除法
- 輾轉相除法原理
- 輾轉相除法與更相減損術(求最大公約數)
- 輾轉相除法的原理
- 輾轉相除法 氣泡排序排序
- 輾轉相除法原理解析
- 透徹理解輾轉相除法
- 除法與GCD演算法的相關分析GC演算法
- C++中的輾轉相除法C++
- 【C語言】聊聊輾轉相除法C語言
- 求最大公約數(輾轉相除法)
- 輾轉相除法(歐幾里得演算法)(gcd)模板及其原理演算法GC
- [待更新]歐幾里得演算法(輾轉相除法)與擴充歐幾里得演算法演算法
- 求最大公約數不同演算法的時間比較(輾轉相除法,更相減損術等)演算法
- 演算法設計與分析(fd)演算法
- 演算法設計與分析---論序演算法
- 演算法分析與設計 - 作業1演算法
- 演算法分析與設計 - 作業2演算法
- 演算法分析與設計 - 作業3演算法
- 演算法分析與設計 - 作業5演算法
- 演算法分析與設計 - 作業6演算法
- 第三章——演算法設計與分析演算法
- 演算法設計與分析-01歐幾里得演算法
- 例項九— 除法器設計
- 計算機演算法設計與分析筆記(二)——遞迴與分治計算機演算法筆記遞迴
- 《Head First 設計模式》:與設計模式相處設計模式
- C#整數除法探析:效能提升與精度平衡的設計之道C#
- 轉錄組GO富集與微生物相關性分析Go
- 量表設計與分析實戰
- 我30歲了,轉行學程式設計可以嗎? 排除法告訴你答案程式設計
- 我30歲了,轉行學程式設計可以嗎?排除法告訴你答案程式設計
- 演算法設計與分析:求兩個自然數的最大公約數演算法
- 物件導向分析與設計(OOAD)物件
- [轉帖]Redis相關的核心引數解釋與設定Redis
- <Redis設計與實現>筆記【轉】Redis筆記
- 如何進行系統分析與設計
- 《資料結構與演算法分析》學習筆記-第十章-演算法設計技巧資料結構演算法筆記