精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • 歐幾里德算法是什么啊?

    歐幾里德算法是什么啊?
    其他人氣:979 ℃時(shí)間:2020-05-22 23:47:06
    優(yōu)質(zhì)解答
    歐幾里德算法
    歐幾里德算法又稱輾轉(zhuǎn)相除法,用于計(jì)算兩個(gè)整數(shù)a,b的最大公約數(shù).其計(jì)算原理依賴于下面的定理:
    定理:gcd(a,b) = gcd(b,a mod b)
    證明:a可以表示成a = kb + r,則r = a mod b
    假設(shè)d是a,b的一個(gè)公約數(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ù)這個(gè)原理來做的,其算法用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
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點(diǎn),以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版