【知识学习】最大公因数gcd
生活随笔
收集整理的這篇文章主要介紹了
【知识学习】最大公因数gcd
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前
最大公因數,又叫gcd/最大公約數。
解決的兩大算法:更相減損 輾轉相除
以下附簡單證明
中
更相減損
記住:這是我們中國人的算法!
用大數減小數的差和小數的最大公約數與原來兩個數的最大公約數相等
證明:
代碼實現
int gcd(int x , int y) {if(x==y) return x;if(x<y)return gcd(y-x , x);return gcd(x-y , y); }輾轉相除
又叫歐幾里得算法
證明:
稍微解釋一下上面的證明(證明來自百度百科)
從上到下看下來應該也就是倒數第四行的結論可能有問題吧,其實可以知道mmm和nnn是互質的(因為如果不互質,則第一行假設不成立),所以y%x一定不等于零,所以y+kxy+kxy+kx一定與xxx互質,那么就有倒數第四行的“可得”了。
代碼實現:
int gcd(int x , int y) {return y==0?x:gcd(y,x%y); }后
忘記好多知識點了,第一遍學的時候也不仔細也沒搞懂原理
希望大家這一遍看過就真的搞懂這個算法,手推一下證明過程哦
總結
以上是生活随笔為你收集整理的【知识学习】最大公因数gcd的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LM2596/LM2596S多路降压稳压
- 下一篇: MBA-day4数学-十字交叉法