跳到内容
← 全部问题

为什么将 gcd⁡(a,b)\gcd(a,b) 改为 gcd⁡(b,r1)\gcd(b,r_1) 会使问题规模变小?

将 gcd⁡(a,b)\gcd(a,b) 改为 gcd⁡(b,r1)\gcd(b,r_1) 会使问题规模变小,因为余数 r1r_1 严格小于除数 bb。通过将较大的数 aa 替换为较小的余数 r1r_1,最大公约数函数的输入大小在每次迭代中都会减小。

适用条件

  • 整数 aa 和 bb 满足 a≥b>0a \ge b > 0。
  • 余数 r1r_1 满足 0≤r1<b0 \le r_1 < b。

理解与推导

  1. 回忆带余除法:a=q1b+r1a = q_1b + r_1。
  2. 注意到 r1<br_1 < b。
  3. 观察到新的数对 (b,r1)(b, r_1) 的最大元素小于 (a,b)(a, b)。
  4. 得出反复应用此变换会减小问题规模,直到余数为 0。

例子

视频解释说,求两个数的最大公约数的原始问题被转化为求一个较小的数和一个余数的最大公约数,因此问题规模变小了。

容易误解的地方

  • 认为余数可以大于除数。
  • 认为在迭代过程中问题规模保持不变。

观看对应讲解

相关概念

继续追问

相关问题

理解原因

↗
掌握方法

↗
认识概念

↗

答案依据视频资料生成并经过独立核验。若有疑问,请核对原视频或联系原作者。