跳到内容
← 全部问题

欧几里得算法在每一步中如何减小问题规模?

欧几里得算法通过将较大的数字替换为两个数字相除的余数来减小问题规模。由于余数 rr 满足 0≤r<a0 \le r < a(其中 aa 是除数),新数字严格小于之前的较大数字,从而确保向基本情况推进。

适用条件

  • 当前数字对是 (a,b)(a,b),其中 b≥a>0b \ge a > 0。
  • 步骤计算 b=aq+rb = aq + r,其中 0≤r<a0 \le r < a。
  • 新的数字对是 (r,a)(r,a) 或 (a,r)(a,r),取决于实现,但有效地最大值减小了。

理解与推导

  1. 识别较大的数字 bb 和较小的数字 aa。
  2. 计算余数 r=b mod ar = b \bmod a。
  3. 注意 r<a≤br < a \le b。
  4. 将数字对 (a,b)(a,b) 替换为 (r,a)(r,a)(或对它们排序)。
  5. 数字对中的最大值从 bb 减小到 aa(或可能减小到 rr)。
  6. 重复直到余数为 0。

例子

脚本指出:“对于 b=aq+r 且 0≤r<a0\le r<a,将 (a,b) 替换为 (r,a)。”

容易误解的地方

  • 认为商 qq 减小了问题规模。
  • 认为数字在每一步都减少固定的量。
  • 将大小的减小与最大公约数的保持混淆。

观看对应讲解

相关概念

继续追问

相关问题

理解原因

↗
掌握方法

↗
判断用途

↗

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