diff --git a/辗转相除法原理.md b/辗转相除法原理.md new file mode 100644 index 0000000..c5cb94b --- /dev/null +++ b/辗转相除法原理.md @@ -0,0 +1,52 @@ +辗转相除法,也称为欧几里得算法(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 = 36,48 - 36 = 12) + - 现在,用除数18除以余数12。 +2. **第二步**:18 ÷ 12 + - 18 ÷ 12 = 1 余 6(因为 12 × 1 = 12,18 - 12 = 6) + - 现在,用除数12除以余数6。 +3. **第三步**:12 ÷ 6 + - 12 ÷ 6 = 2 余 0(因为 6 × 2 = 12,12 - 12 = 0) + - 余数为0,过程结束。 + +最后的除数就是6,因此48和18的最大公约数是6。这与我的预期一致,因为6确实是能同时整除48和18的最大的数。 + +#### 数学原理 + +辗转相除法的有效性基于以下两个数学原理: + +1. **除法算式的基本性质**: + 对于任何两个正整数a和b(a > 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的最大公约数就是那个数本身。 \ No newline at end of file