【演算法分析與設計】輾轉相除法
輾轉相除法
輾轉相除法又稱歐幾里德演算法,是指用於計算兩個正整數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
- 除法與GCD演算法的相關分析GC演算法
- 漫畫演算法:輾轉相除法是什麼鬼?演算法
- C++中的輾轉相除法C++
- 【C語言】聊聊輾轉相除法C語言
- 求最大公約數不同演算法的時間比較(輾轉相除法,更相減損術等)演算法
- python用輾轉相除法求最大公約數Python
- 輾轉相除法求最大公約數——[js練習]JS
- 歐幾里德演算法(又稱輾轉相除法)求最大公約數,以及最小公倍數演算法
- C語言第七篇:輾轉相除法求最大公約數C語言
- 演算法設計與分析(fd)演算法
- C#演算法設計與分析-尋找素數 (轉)演算法
- 演算法設計與分析---論序演算法
- 演算法設計與分析-01歐幾里得演算法
- 演算法分析與設計 - 作業1演算法
- 演算法分析與設計 - 作業2演算法
- 演算法分析與設計 - 作業3演算法
- 演算法分析與設計 - 作業5演算法
- 演算法分析與設計 - 作業6演算法
- 計算機演算法設計與分析——遞迴與分治策略(一)計算機演算法遞迴
- 第三章——演算法設計與分析演算法
- 計算機演算法設計與分析筆記(二)——遞迴與分治計算機演算法筆記遞迴
- C#整數除法探析:效能提升與精度平衡的設計之道C#
- 軟體設計雜談(一)--需求分析與系統設計 (轉)
- 《實用演算法的分析與程式設計》的讀書筆記(第1天) (轉)演算法程式設計筆記
- 《實用演算法的分析與程式設計》的讀書筆記(第2天) (轉)演算法程式設計筆記
- 《Head First 設計模式》:與設計模式相處設計模式
- 角色扮演遊戲引擎的設計原理與分析(轉)遊戲引擎
- J2EE設計模式分析與實踐——引言 (轉)設計模式
- 基於UML的資訊系統分析與設計 (轉)
- 量表設計與分析實戰
- 我30歲了,轉行學程式設計可以嗎? 排除法告訴你答案程式設計
- 我30歲了,轉行學程式設計可以嗎?排除法告訴你答案程式設計