跳到内容
← 全部问题

为什么令 k=floor(a/ba/b) 会得到欧几里得算法?

令 k 等于 a 除以 b 的下取整,会将项 a−k⋅ba-k\cdot b 转换为 a 除以 b 的余数。由于 a mod b=ab = a - floor(a/ba/b)·b,将其代入递推公式 gcd(a,b)=gcd(b,a−k⋅ba-k\cdot b) 得到 gcd(a,b)=gcd(b,a mod b),这就是欧几里得算法。

适用条件

  • k 被设为 floor(a/ba/b)。
  • b 不为零(由除法运算隐含,尽管视频中未明确说明)。

理解与推导

  1. 从一般公式 gcd(a,b)=gcd(b,a−k⋅ba-k\cdot b) 开始。
  2. 设 k = floor(a/ba/b)。
  3. 认识到 a - floor(a/ba/b)·b 是 a mod b 的定义。
  4. 将 a mod b 代入公式得到 gcd(a,b)=gcd(b,a mod b)。

例子

视频解释说:“令 k=floor(a/ba/b),得到欧几里得算法:gcd(a,b)=gcd(b,a mod b)。”

容易误解的地方

  • 认为 floor(a/ba/b) 是余数;它是商。
  • 认为欧几里得算法在 b=0b=0 时也适用;在这种情况下除以 b 是无定义的。

观看对应讲解

相关概念

继续追问

相关问题

理解原因

↗
掌握方法

↗
认识概念

↗

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