跳到内容
从一个困惑开始

你想弄懂什么?

找到答案,看到讲解发生的那一刻,再顺着概念继续探索。

← 概念导览

关于「欧几里得算法如何计算最大公约数?」

30 个关键词匹配
理解原因

↗

该例子以 4 结束,是因为反复应用减法规则最终得到 4。首先,12−8=412 - 8 = 4,形成数对 8 和 4。

适用条件:从数对 12 和 8 开始。;反复用较大的数减去较小的数。

判断用途

↗

严格来说,欧几里得算法的标准停止条件是继续直到余数为 0。然后最后一个非零余数就是最大公约数。

适用条件:输入是自然数。;正在应用欧几里得算法。

掌握方法

↗

要计算 gcd⁡(5295,4321)\gcd(5295, 4321),应用欧几里得算法,反复用前一个除数除以前一个余数。从 5295=1⋅4321+9745295 = 1 \cdot 4321 + 974 开始。

适用条件:输入是 5295 和 4321。;使用欧几里得算法。;每一步都应用除法算法。

理解原因

↗

令 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 不为零(由除法运算隐含,尽管视频中未明确说明)。

理解原因

↗

一旦新余数为 0,除法就是精确的,这意味着当前的除数能完美整除前一个被除数。算法的终止规则指出,原始数对的最大公约数是最后一个非零余数,也就是这次最终精确除法的除数。

适用条件:欧几里得算法已应用于两个正整数。;一个除法步骤产生了余数 0。;输入是 10 和 45。

认识概念

↗

在显示的欧几里得算法中,aa 和 bb 是要找最大公约数的两个初始自然数。qiq_i 代表第 ii 个除法步骤中的商。

适用条件:这些符号来自左板上欧几里得算法的一般陈述。

掌握方法

↗

要计算 1785 和 546 的最大公约数,应用欧几里得算法,反复用前一个除数除以前一个余数。从 1785 除以 546 开始。

适用条件:输入是 1785 和 546。;使用欧几里得算法。;每一步都应用除法算法。

掌握方法

↗

要开始求 gcd⁡(1701,3768)\gcd(1701, 3768) 的欧几里得算法,需将较大的数(3768)放在除法方程的左边,将较小的数(1701)作为除数。写出 3768=1701⋅q+r3768 = 1701 \cdot q + r。

适用条件:输入是正整数。;较大的数首先用在方程的左边。;商是整数,且余数满足 0≤r<17010 \le r < 1701。

理解原因

↗

公因数也能整除差,是因为除法被解释为重复的减法。如果一个数能整除较大的数和较小的数,那么从较大的数中反复减去较小的数,最终留下的差也能被同一个除数整除。

适用条件:例子中有两个数。;所选的除数能以演讲者描述的方式整除。;减法是用较小的数从较大的数中进行的。

理解原因

↗

这段 C++ 代码在循环结束后返回 `b` 而不是 `r`,因为循环条件是 `r>0r > 0`。当循环终止时,`r` 已经变成了 0,这不是最大公约数。

适用条件:循环条件是 `while (r>0r > 0)`。;变量 `a`、`b` 和 `r` 在循环内按 `a=ba = b; b=rb = r; r=ar = a % b;` 更新。

认识概念

↗

递推公式指出,对于任意整数 k,a 和 b 的最大公约数等于 b 和 a 减去 k 乘以 b 的最大公约数。这个恒等式允许将第一个参数替换为原始参数的整数线性组合,同时保持最大公约数不变。

适用条件:a 和 b 是整数。;k 是任意整数。

理解原因

↗

最后一个非零余数 rnr_n 是 gcd⁡(a,b)\gcd(a,b),因为欧几里得算法在每一步都保持最大公约数不变:gcd⁡(a,b)=gcd⁡(b,r1)=gcd⁡(r1,r2)=⋯=gcd⁡(rn,0)\gcd(a,b) = \gcd(b,r_1) = \gcd(r_1,r_2) = \dots = \gcd(r_n, 0)。由于任何数都能整除 0,rnr_n 和 0 的最大公约数就是 rnr_n 本身。

适用条件:当余数为 0 时算法终止。;rnr_n 是序列中的最后一个非零余数。