久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Scratch數學編程之求最大公約數

     小曾4om1ilfwen 2017-06-07

    求最大公約數

    有兩個自然數ab,如果a能被b整除,那么,b就叫做a的約數。

    兩個或多個自然數的共有約數中最大的一個,叫做它們的最大公約數,也稱最大公因數、最大公因子。

    求最大公約數有多種方法,常見的有質因數分解法、短除法、輾轉相除法、輾轉相減法、更相減損法等。


    【問題】

    輸入兩個正整數a和b,求它們的最大公約數。


    【編程解題】

    下面我們將分別介紹使用輾轉相除法、更相減損法來求兩個數的最大公約數。


    輾轉相除法

    輾轉相除法,又稱歐幾里德算法,用于計算兩個正整數ab的最大公約數。它是已知最古老的算法,其可追溯至公元前300年前。

     

    輾轉相除法的算法步驟是,對于給定的兩個正整數aba>b),用a除以b得到余數c。若余數c不為0,就將bc構成新的一對數(a=bb=c),繼續上面的除法,直到余數c0,這時b就是原來兩個數的最大公約數。

    因為這個算法需要反復進行除法運算,故被形象地命名為“輾轉相除法”。

     

    舉例說明,用輾轉相除法求25575的最大公約數。

    給定兩個數:255,75

    第一次:用255除75,余30;

    第二次:用75除30,余15;

    第三次:用30除15,余0;

    這時就得到255和75的最大公約數是15

     

    我們把輾轉相除法的算法用流程圖表示。

                注:a mod b,即a除以b的余數。

     

    根據上面的算法步驟,我們編寫一個名為“輾轉相除法”的模塊,用來求兩個數的最大公約數。該模塊的完整代碼如下:

            

    下面編寫調用“輾轉相除法”模塊的主程序,用來求25575的最大公約數。主程序的代碼如下:

    點擊綠旗運行程序,求得25575的最大公約數是15


    更相損減法

    《九章算術》是中國古代的數學專著,其中的“更相減損術”可以用來求兩個數的最大公約數。該書成于公元一世紀左右,書中內容十分豐富,系統總結了戰國、秦、漢時期的數學成就。

     

    更相損減法的算法步驟:

    第一步:任意給定兩個正整數,判斷它們是否都是偶數。若是,則用2約簡;若不是則執行第二步。

    第二步:以較大的數減較小的數,接著把所得的差與較小的數比較,并以大數減小數。繼續這個操作,直到所得的差和減數相等為止。

    第三步:最后把第一步中約掉的若干個2與第二步中等數的乘積就是所求的最大公約數。

    這里所說的“等數”,就是最大公約數,求“等數”的辦法就是“更相減損法”,所以,更相減損法也叫等值算法。

     

    舉例說明,用更相減損術求260104的最大公約數。

    第一步:由于260和104均為偶數,首先用2約簡得到130和52,再用2約簡得到65和26。

    第二步:此時65是奇數,而26不是奇數,故把65和26輾轉相減:

    65-26=39

    39-26=13

    26-13=13

    第三步:最后把第一步中約掉的兩個2和“等數”13相乘:

    13×2×2=52

    所以,260與104的最大公約數是52。

     

    我們把更相減損法的算法用流程圖表示。

    注:GCD,即最大公約數。

    根據上面的算法步驟,我們編寫一個名為“更相減損法”的模塊,用來求兩個數的最大公約數。該模塊的完整代碼如下:

            

    下面編寫調用“更相減損法”模塊的主程序,用來求260104的最大公約數。主程序的代碼如下:

    點擊綠旗運行程序,求得260104的最大公約數是52


    輾轉相減法

    如果去掉“更相減損法”中對兩個正整數均為偶數時做的除法運算,只保留減法運算,也能求出兩數的最大公約數。

    這種方法叫輾轉相減法,即尼考曼徹斯法,其特色是做一系列減法,從而求得最大公約數。

     

    例如:用輾轉相減法求兩個自然數3514的最大公約數。

    35 – 14 = 21     用大數減去小數

    21 – 14 = 7              7小于14,要做一次交換,把14作為被減數

    14 – 7 = 7         求得“等數”,這樣也就求出了最大公約數7。

     

           請你試一試,用Scratch編寫一個名為“輾轉相減法”的模塊,用來求兩個數的最大公約數。

     


      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产麻豆成人传媒免费观看| 久久久无码精品亚洲日韩按摩| 精品人妻少妇嫩草AV无码专区| 中文字幕永久精品国产| 亚洲综合无码AV在线观看| 欧美亚洲日韩国产人成在线播放| 一本一道av中文字幕无码| 久在线精品视频线观看| 欧美XXXX色视频在线观看| 草裙社区精品视频播放| 国产欧美日韩一区二区三区 | 国产一区二区日韩在线| 一本精品中文字幕在线| 久久精品国产99国产精品澳门| 国产成人不卡无码免费视频| 99久久精品国产综合一区| 亚洲国产成人久久精品软件| 国产AV大陆精品一区二区三区| 中文字幕一卡二卡三卡| 日韩av综合中文字幕| 黑巨茎大战俄罗斯美女| 十八禁午夜福利免费网站| 亚洲精品国产精品乱码视色| 国产线播放免费人成视频播放 | 成人免费看片又大又黄| 成人无码潮喷在线观看| 久久久久亚洲AV成人网人人软件 | 強壮公弄得我次次高潮A片 | 草裙社区精品视频播放| 日本精品人妻无码77777| 四虎亚洲精品高清在线观看| 成人欧美一区二区三区的电影| 日韩免费无码一区二区视频| 亚洲欧美中文日韩V在线观看| 116美女极品a级毛片| 老色鬼久久亚洲AV综合| 无码人妻丰满熟妇区五十路在线| 中文有无人妻vs无码人妻激烈| 大帝AV在线一区二区三区| 一区二区国产高清视频在线| 国产成人一区二区三区免费|