證明:輾轉相除法與更相減損術


輾轉相除法與更相減損術的證明

前言

  • 這兩種方法都是用來求兩個數的最大公約數,但是從時間復雜度的角度來講,輾轉相除法的效率會高於更相減損術,尤其是在兩數相差比較大的時候。
  • 兩者證明方法類似,但因為更相減損術的證明更為簡單,並且有了其基礎也能更快地去理解輾轉相除法,故先證明更相減損術。

更相減損術的證明:

更相減損術是出自《九章算術》的一種求最大公約數的算法,它原本是為約分而設計的,但它適用於任何需要求最大公約數的場合。——百度百科

Description:

  • \[\forall a,b\in \mathbb{N},a\geq b\:\Rightarrow gcd(a,b)=gcd(b,a-b)=gcd(a,a-b) \]

  • \[\forall a,b\in \mathbb{N}\:\Rightarrow gcd(2a,2b)=2\cdot gcd(a,b) \]

前置芝士🧀:

  • \(a|b\) 表示 \(a\) 能整除 \(b\)\(a\)\(b\) 的約數)。
  • \(gcd(a,b)\) 表示 \(a,b\) 的最大公約數。
  • \(a\:mod\:b\) 表示 \(a\) 除以 \(b\) 取余數。

證明:

  • 顯然,根據最大公約數的定義,后者是成立的,主要證明前者。
  • 對於 \(a,b\)任意公約數 \(d\) ,因為 \(d|a,d|b\) ,所以 \(d|(a-b)\) 。(不妨設 \(a=x\cdot d,b=y\cdot d\) ,那么 \(a-b=x\cdot d-y\cdot d=(x-y)\cdot d\) ,顯然 \((x-y)\cdot d\)\(d\) 的倍數)
  • 因為 \(d\) 是任意取的,所以可以取到整個 \(a,b\) 的公約數集合。故 \(a,b\)公約數集合\(b,a-b\)公約數集合相同,於是他們的最大公約數自然也相等。對於 \(a,a-b\) 同理。

證畢。

輾轉相除法的證明:

輾轉相除法,即歐幾里得算法,同樣是一種用來求兩個數的最大公約數的算法,但是要比更相減損術更加高效。

Description:

  • \[\forall a,b\in \mathbb{N},b\neq 0\Rightarrow gcd(a,b)=gcd(b,a\:mod\:b) \]

前置芝士🧀:

  • 熟悉更相減損術的證明以及取模運算的意義。

證明:

  • \(a<b\) ,則 \(gcd(b,a\:mod\:b)=gcd(b,a)=gcd(a,b)\) ,命題得證。
  • \(a\geq b\) ,則不妨設 \(a=q\times b+r\) ,其中 \(0\leq r<b\) ,顯然 \(r=a\:mod\:b\) 。對於 \(a,b\)任意公約數 \(d\) ,因為 \(d|a,d|(q\times b)\) ,所以 \(d|(a-q\times b)\) ,即 \(d|r\) ,因此 \(d\) 也是 \(b,r\) 的公約數。
  • \(a,b\) 的公約數集合與 \(b,a\:mod\:b\) 的公約數集合相同,於是他們的最大公約數自然也相等。

證畢。

2021年1月17日
——pycr


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM