青青草免费线看线看|啊在车上停不下来了|国产少女免费观看电视剧|仑乱88MAV|精品老司机在线观看视频|国产一区二区三区高清免费视频|在线观看免费777av

歐幾里德算法是什么啊?


歐幾里德算法是什么啊?


歐幾里德算法 歐幾里德算法又稱輾轉(zhuǎn)相除法,用于計算兩個整數(shù)a,b的最大公約數(shù) 。其計算原理依賴于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 證明:a可以表示成a = kb + r,則r = a mod b 假設(shè)d是a,b的一個公約數(shù),則有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公約數(shù) 假設(shè)d 是(b,a mod b)的公約數(shù),則 d | b , d |r,但是a = kb +r 因此d也是(a,b)的公約數(shù) 因此(a,b)和(b,a mod b)的公約數(shù)是一樣的,其最大公約數(shù)也必然相等,得證 。歐幾里德算法就是根據(jù)這個原理來做的,其算法用C++語言描述為: void swap(int & a, int & b) { int c = a; a = b; b = c; } int gcd(int a,int b) { if(0 == a ) { return b; } if( 0 == b) { return a; } if(a > b) { swap(a,b); } int c; for(c = a % b ; c > 0 ; c = a % b) { a = b; b = c; } return b; }參考資料:internet
【歐幾里德算法是什么啊?】

    猜你喜歡