class-notes/辗转相除法原理.md
2025-04-05 19:25:52 +08:00

2.5 KiB
Raw Blame History

辗转相除法也称为欧几里得算法Euclidean Algorithm是一种用于计算两个整数的最大公约数Greatest Common Divisor, GCD的有效方法。

最大公约数的定义

首先我需要明确什么是最大公约数。对于两个整数a和b假设a > b它们的最大公约数是能够同时整除a和b的最大的正整数。例如12和18的最大公约数是6因为6是能够整除12和18的最大的数。

辗转相除法的基本步骤

根据我所了解,辗转相除法的基本步骤如下:

  1. 用较大的数除以较小的数,得到余数。
  2. 然后用较小的数除以这个余数,再得到一个新的余数。
  3. 重复这个过程直到余数为0。此时除数就是这两个数的最大公约数。

让我用一个具体的例子来试试这个方法。

示例:计算 48 和 18 的最大公约数

  1. 第一步48 ÷ 18
    • 48 ÷ 18 = 2 余 12因为 18 × 2 = 3648 - 36 = 12
    • 现在用除数18除以余数12。
  2. 第二步18 ÷ 12
    • 18 ÷ 12 = 1 余 6因为 12 × 1 = 1218 - 12 = 6
    • 现在用除数12除以余数6。
  3. 第三步12 ÷ 6
    • 12 ÷ 6 = 2 余 0因为 6 × 2 = 1212 - 12 = 0
    • 余数为0过程结束。

最后的除数就是6因此48和18的最大公约数是6。这与我的预期一致因为6确实是能同时整除48和18的最大的数。

数学原理

辗转相除法的有效性基于以下两个数学原理:

  1. 除法算式的基本性质 对于任何两个正整数a和ba > b可以表示为 a = b × q + r其中q是商r是余数且0 ≤ r < b。

  2. GCD的性质 GCD(a, b) = GCD(b, r)。也就是说a和b的最大公约数等于b和r的最大公约数。

    为什么这个性质成立?

    • 设d = GCD(a, b)即d能整除a和b。
    • 因为a = b × q + r所以r = a - b × q。
    • 既然d能整除a和b那么d也能整除r因为它是a和b的线性组合
    • 因此d也是b和r的一个公约数。
    • 现在假设存在一个更大的公约数d' > d能整除b和r。
    • 但是a = b × q + r所以d'也能整除a这意味着d'也是a和b的公约数且大于d这与d是最大公约数矛盾。
    • 因此GCD(a, b) = GCD(b, r)。

通过这个性质我们可以将原问题逐步简化直到余数为0。此时GCD(b, 0) = b因为任何数和0的最大公约数就是那个数本身。