『編程學數學』Lesson 6 用歐幾裡德算法求最大公因數(六年級第一單元)

2021-12-23 碼農家委會

王子龍老師教會同學們如何使用歐幾裡德算法,即輾轉相除法,快速求出兩數的最大公因數。並且,留下證明題讓同學們思考。

這個算法在數學界和計算機界都太重要,以至於很容易可以度到正確證明方法,和計算機實現。但是好多家長度完以後表示不理解。我來嘗試用「普通話」描述一下。

證明歐幾裡德算法:兩個自然數的最大公約數,等於兩數中較小數和較大數除以較小數所得餘數的最大公約數

假設兩個正整數A和B(A>B),則兩者關係可表達為A=kB+r(其中r是A除以B的餘數),記作r=A mod B

再假設q是A和B的最大公約數gcd(greatest common divisor),記作gcd(A,B)=q

那麼由A=kB+r  =>  r=A-kB,即可知q也可以被r整除

所以gcd(B, r)=q,即gcd(B, A mod B)=q,得證。

#定義函數gdc,返回值為最大公約數

def gdc(A,B):
    if B==0:
        return A
    else:
        return gdc(B,A%B)

#調用函數列印返回值,傳入A=12480,B=1024

print "gdc(12480,1024)=",gdc(12480,1024)

運行結果:

gdc(12480,1024)= 64

註:直接copy&paste代碼到在線編譯器玩的話,請注意調整縮進


求出最大公因數有什麼用呢?

1.貝祖定理

由歐幾裡德算法進一步推出,兩數的最大公約數可用兩數的整數倍相加來表示,這就是貝祖定理 -- 任何整數A、B和它們的最大公約數q,關於未知數x和y的線性方程(裴蜀等式)Ax + By = r有解,若且唯若r是q的倍數。

換種說法,最大公約數q就是最小的可以寫成Ax+By形式的正整數。例如,12和42的最大公約數是6,那麼我們可知方程12x + 42y = 6有解。

裴蜀等式有解時必然有無窮多個整數解,每組解x、y都稱為裴蜀數。特別情況是,兩個整數a、b 是互質的,等價於方程 ax+by=1有整數解。

2.計算機密碼學

計算機密碼最常用的有

(1)移位

(2)邏輯運算

(3)歐幾裡德算法求兩個整數的最大公約數

(4)素數的判定和尋找

歐幾裡德算法是計算機編程實現加解密的基本運算之一。例如RSA算法是基於人們無法快速分解出公約數的假設。

寫在最後

當代使用量子計算Quantumn的疊加態,同時並行運算多種情況,可快速分解出公約數,加速RSA破解。想了解更多量子計算原理,請看歷史貼把看《擺渡人》的時間省下,來學學量子計算

Reference

Python在線編譯器 https://c.runoob.com/compile/6

【歷史課程回顧】

『編程學數學』Lesson 5 神奇的數字37(六年級第一單元)

『編程學數學』Lesson 4 整除快速記憶法(六年級第一單元)

『編程學數學』Lesson 3 多邊形的內外角

『編程學數學』Lesson 2 有用且無用的素數

『編程學數學』Learning Math by Coding Lesson 1

相關焦點

  • 求最大公因數——五六年級的看看吧!
    最大公因數也叫最大公約數,是蘇教版小學數學教材五年級下冊「倍數和因數」單元的一個重要概念。
  • 【五年級數學微課】用「短除法」求最大公因數
    要想分解質因數,我們經常要用到「短除法」。如上圖第二種方法。講完這部分知識,除了讓學生知道什麼是「質因數」,「分解質因數」,還可以藉助「短除法」來求兩個及兩個以上整數的最大公因數和最小公倍數。同學們一定要學會用短除法分解質因數,今天這節課,我們就是用短除法來求兩個數的最大公因數。
  • 18和24的最大公因數。 18和24的最大公因數是什麼
    公因數是我們小學經常都會接觸到的一個知識點,有很多題都是讓我們求最大公因數的,那麼大家還記不記得應該怎麼求兩個數的最大公因數呢?18和24的最大公因數又是多少呢?讓我們一起來看看吧。
  • 40和48的最大公因數 40和48的最大公因數是幾
    最大公約數,也稱最大公因數或者最大公因子,意思是兩個或多個整數共有約數中最大的一個數。那麼,40和48的最大公因數是多少呢? 40和48的最大公因數是8。最大公約數,指兩個或多個整數共有約數中最大的一個。a,b的最大公約數記為(a,b),同樣的,a,b,c的最大公約數記為(a,b,c),多個整數的最大公約數也有同樣的記號。
  • 大數的最大公因數,課本裡學的短除法有難度,用輾轉相除法很容易
    求兩個數的最大公因數和最小公倍數,是小學五年級的內容,小學教材中,都是採用短除法來計算的。短除法計算最大公因數簡單明了,速度快。但是,對於一些比較大的數,如求8251和6105的最大公因數,我們就不太好找出它們公有的因數,用短除法時,就顯得力不從心了。
  • 用短除法求最大公因數和最小公倍數
    使學生進一步理解和掌握最大公因數和最小公倍數的意義。2. 使學生掌握短除法。3. 使學生理解和掌握用短除法求兩個數的最大公因數和最小公倍數的算理。4. 讓學生參與學習活動的過程中,體驗學習和探索活動的樂趣,增強對數學學習的信心。教學重點:用短除法求最大公因數和最小公倍數。
  • 小學數學~試講~《最大公因數》
    《最大公因數》試講稿喜歡就關注我吧,定時更新人教版小學數學五年級下冊第四單元第六課時開場白我是面試小學數學教師的3號考生,我今天試講的題目是《最大公因數》,下面開始我的試講。一、導入師:上課,同學們好,請坐!師:同學們,在正式開始上課之前先請大家回憶一下,在整數除法中,什麼叫做因數?師:嗯,大家說除數是被除數的因數。那這句話對嗎?有什麼需要注意的呢?你舉手最快,你來說!
  • 【小學數學試講】最大公因數
    人教版小學五年級數學下冊一、教學目標【知識與能力目標】理解兩個數公因數和最大公因數的意義,學會求兩個數最大公因數的方法。【情感態度價值觀目標】學會用公因數、最大公因數的知識解決簡單的現實問題,體驗數學與生活的密切聯繫。二、教學重難點【重點】理解公因數與最大公因數的意義。【難點】學會找公因數和最大公因數的方法。
  • 小學五年級數學求最大公因數九種方法,替孩子收藏!
    求最大公因數是小學重點掌握的知識點,不僅關係到小學重要考試,在初中數學學習中,也是很多重點知識點的學習根基。很多同學認為在小學課本中,最大公約數已學的很透,當你認真看完這篇文章後,你會發現數學真的是一門神奇的學科。運用能被2、3、5整除的數的特徵進行觀察.
  • 求最大公因數九種方法
    12的因數有:1、2、3、4、6、12;30的因數有:1、2、3、5、6、10、15、30.12和30的公因數有:1、2、3、6,其中6就是12和30的最大公因數.先分別把兩個數分解質因數,再找出它們全部公有的質因數,然後把這些公有質因數相乘,得到的積就是這兩個數的最大公因數.
  • 五下數學:最大公因數和最小公倍數,重難點梳理,理清每個知識點
    最大公因數用( 小括號 )表示,如12和16的最大公因數是4,記作(12,16)=4。最小公倍數用[中括號]表示,如12和16的最小公倍數是48,記作[12,16]=48。02怎麼計算最大公因數和最小公倍數1、用列舉法求最大公因數和最小公倍數
  • 求最大公因數的幾種方法
    2、短除法例如求8和12的最大公因數(8,12)=2×2=4 3、分解質因數法 求8和12的最大公因數則用較小的那個數繼續除以餘數,按照這樣的方法一直除下去,除到餘數為0為止,那麼最後的除數就是兩個數的最大公因數。
  • 學數學 | 9種方法,快速學會求最大公因數
    因為225÷15=15,105÷15=7,15與7互質,所以225和105的最大公因數是15。先分別找出每個數的所有因數,再從兩個數的因數中找出公有的因數,其中最大的一個就是最大公因數。例如,求12和30的最大公因數。12的因數有:1、2、3、4、6、12;30的因數有:1、2、3、5、6、10、15、30。
  • 小學數學知識點每日推薦3:公因數與最大公因數
    如果一個整數同時是幾個整數的因數,稱這個整數為它們的「公因數」;公因數中最大的稱為最大公因數(最大公約數)。2.求最大公因數的方法方法一:質因數分解法全部共有的質因數(公有質因數)相乘的積就是這幾個數的最大公因數。
  • 《最大公因數和最小公倍數》求法之我見
    下面就和大家談一談除了教材資源,怎樣用「數學眼光」來搜索教學資源的。眾所周知,最大公因數和最小公倍數有著廣泛的應用,特別是在分數四則運算中,更是不可缺失。所以求最大公因數和最小公倍數是小學高年級數學教學的重點,也是難點。下面列舉兩個數的最大公因數和最小公倍數的幾種求法,供大家分享,不全面,僅供參考。1.
  • 南開區小學數學特色課程 ——五年級《最大公因數》
    如輸入「設計1」…,可查看優秀教學設計;輸入「資料1」…,可查看相關培訓資料;輸入「試卷1」…,您將收到往屆考試試卷或各年級各單元同步練習;輸入「畢業1」…,您將收到各區往屆畢業試卷;輸入「年級+編號」,如4.1…,可獲得四年級特色課程,6.1、6.2…可獲得六年級特色課程。
  • (人教版)五年級下冊第四單元:《最大公因數》資源包
    第四單元:《約分》及練習十六(教材P65-67的內容)2.會依據分數的基本性質和找兩個數的公因數的方法進行約分。2.請在本子上舉例2個分數進行約分,要求約成最簡分數,寫出過程。4.問一問:提出1-2個問題。(可以是自己會的,也可以是自己不會的)根據預學判斷,這些例子是否為約分?
  • 五年級下冊數學:因數與倍數單元練習題,解決問題有難度
    五年級下冊數學二單元因數與倍數的學習基本結束。通過這一階段的學習,不難發現,二單元的學習以概念為主,學習了因數、倍數、質數、合數、奇數和偶數。題型不太複雜,基本圍繞以上的六種概念展開。比較難的題是解決問題,也就是應用題。
  • 找最大公因數的方法
    最大公因數北師大版數學教材把公因數、最大公因數的概念安排在了五年級上冊,教材中重點介紹了利用列舉法找公因數、最大公因數。
  • 分析數量關係,用最大公因數解答實際問題
    五年級數學講授了最大公因數和最小公倍數的相關知識。相關練習題中,有很多利用最大公因數和最小公倍數進行求解的實際問題。這類問題,學生往往只是會做,而不明白裡面的道理,今天小編就和大家一起來分析裡面的數量關係,從而明確用最大公因數和最小公倍數解題的最終原因。