最大公因数
两个整数的最大公约数 (GCD) 是能同时整除这两个数且无余数的最大正整数。如果 GCD 为 1,则称这些数为互质。输入是整数且不全为零。
SoftwareEngenius · YouTube · 5:01
本课从正公约数、整除与同余出发讲解欧几里得算法,随后展示递归实现与调用次数的界。整数最大公约数的输入不全为零。对有序正整数 ,写成 且 ;恒等式 保持答案。除数达到零时,返回前一个正除数。编辑笔记补全原片未单独展示的反向公约数论证,并修正复杂度幻灯片的零商旁注笔误。该 界取 ,计算的是单位成本算术模型下的取余调用次数,而非所有位运算的实际耗时。
在学习检查器中查看要点和时刻,或切换阅读标签查看完整笔记。
依据视频画面与讲解整理,并非逐字语音转写。
视频开场提出了一个实际问题:如何高效地计算两个大数(特别是 1071 和 462)的最大公约数 (GCD)。
在处理高效计算之前,先定义了基本概念。两个整数的 GCD 是能同时整除这两个数的最大正整数。像 和 这样的简单例子说明了这一点。 的情况也引入了“互质”一词,用于指代除了 1 以外没有共同约数的数字。
对于正整数输入,直接搜索会从较小的数向下测试候选数直到 1。在最坏情况下,整除测试的次数与该较小输入成线性增长;这种比较计算的是算术测试次数,而不是位级处理时间。
为了克服这种低效性,引入了欧几里得算法作为计算 GCD 的更优方法。
欧几里得算法的理论基础通过一个三部分引理呈现。首先,它建立了交换性质:。其次,它涵盖了一个数整除另一个数的平凡情况:如果 且 ,那么 。第三,也是对于算法递归性质最重要的一点,它将模算术与 GCD 联系起来:如果 ,那么 。
对于正模数 ,关系 意味着 。因此存在一个整数 使得 。这些方程为随后的公约数论证奠定了基础。
板书列出最大公约数的基本性质。当前重点是第三项,其假设为 。
由假设引入整数 ,满足 ,移项得到 。接着研究把 替换为余数般的量 ,能否保持与 的最大公约数。
接下来取整数 ,同时整除 和 。口头讲解把此 放在最大公约数语境中,而板书明确记录的假设仅为 和 。
因为 整除 和 ,视频论证 也必须整除组合 。给出的口头理由是有效地使用了 的倍数,这仍然被 整除。
由于 ,相同的陈述变为 。此时,黑板已将 和 的任何公因子链接到 的因子。
黑板得出结论 。编辑补充: 和 的每个公因子都整除 ,提供了相等所需的反向蕴含。因此,这两对有相同的正公因子。
这种不变性将整除论证转化为计算最大公约数的方法。
对于整数输入 ,使用带余除法写出 ,其中 。
将此除法步骤应用于归约引理得到 。因此,原始对被替换为由除数和余数组成的较小对。
如果 ,再次除法:,其中 。然后 。如果余数为零,则除法停止。
相同的归约随着严格递减的正整数余数重复。这种下降是有限的,随后的解释确定最后一个正因子为答案。
余数是非负整数。当出现零余数时,前一个正除数就是最大公约数。令 ,也能涵盖第一次除法就整除的情形,此时答案为 。这给出了余数链的终止规则。
对不全为零的非负整数参数,递归函数在 时返回 ,否则调用 ,使用非负余数。原片展示有序正整数输入;任意带符号输入需要先规范为非负值,不能直接套用此代码。
对整数 ,新余数至多为 。两次递归调用后,较大参数已经降到该余数,除非过程已经终止。因此,在单位成本算术模型下,取余调用次数为 。这计算的是数值量级的缩减,并非位级运行时间。编辑修正:原幻灯片写零商会得到 ,实际应为 ;正确限制商后仍能得到相同的减半结论。
课程在递归实现与复杂度讨论后结束。
两个整数的最大公约数 (GCD) 是能同时整除这两个数且无余数的最大正整数。如果 GCD 为 1,则称这些数为互质。输入是整数且不全为零。
对于正整数输入,向下检查候选数直到 1 会在单位成本算术模型下给出与较小输入成线性关系的最坏情况整除测试次数。
欧几里得算法依赖于 GCD 的关键性质。1) 交换律:输入的顺序无关紧要 ()。2) 整除性:如果正数 整除 ,它们的 GCD 就是 。
使欧几里得算法能够进行归约步骤的关键性质:如果两个数 和 除以 留下相同的余数(即 ),那么它们与 的 GCD 相等 ()。这里模数 是一个正整数。
模性质的证明始于将同余关系转化为整除陈述。如果 ,根据定义, 整除差 。这意味着存在一个整数 使得 。
片段以手写引理列表开始:(1) ;(2) 如果 且 ,则 ;(3) 用于证明欧几里得算法的归约事实。这些被呈现为该方法遵循的基本事实。
对于整数 和正整数 ,条件 保持最大公约数。原片展示正向蕴含;编辑补充利用 ,说明 和 的公约数也整除 。
由 可知, 的公约数也整除 。编辑补充: 的公约数也整除 。两个方向共同保证正公约数集合相同。
对于正除数和非负余数,重复除法保持 GCD。仅当下一个余数为正时才除以它;算法在零时停止。
标准整数除法给出小于当前正除数的非负余数。它们的正值严格递减,因此迭代必须终止。
对正整数输入对,非负余数递减直到零。前一个正除数是最大公约数;令 以涵盖第一次除法即整除。
对不全为零的非负整数输入,第二个参数为零时返回第一个;否则对除数与非负余数继续递归。带符号输入需要先规范为非负值。
对有序正整数输入,新余数至多为此前被除数的一半。因此,两次调用内较大参数至少减半,单位成本算术模型下取余调用次数为对数级;这不是位级运行时间。
按知识点查看条件、步骤和证据。补充解释与视频直接内容分别标明。
开场说明最大公约数,并用整数对举例。
开场说明最大公约数,并用整数对举例。
gcd(a,b)
能同时整除整数 a 和 b 且无余数的最大整数。
整数 a 和 b,不全为零;GCD 取正值。
板书引理用整数变量陈述交换、整除与同余性质。
a, b, c
用于陈述 GCD 性质和欧几里得算法的整数变量。
整数
板书把可整除的差写成模数的整数倍。
板书把可整除的差写成模数的整数倍。
y
一个整数,使得 by = a - c,由整除条件 b | (a - c) 推导得出。
整数
板书把同一个最大公约数依次写为不同整数对的最大公约数。
板书把同一个最大公约数依次写为不同整数对的最大公约数。
两个整数的最大公约数。
此处用于整数对,如 、、 和 。
板书把一个整数替换为减去另一个整数倍所得的差。
板书把一个整数替换为减去另一个整数倍所得的差。
在证明 的引理中出现的整数,条件为 。
整数。
整数倍系数出现在整除等式与其移项结果中。
整数倍系数出现在整除等式与其移项结果中。
见证 是 的倍数的整数。
。
原片引入公约数并追踪正向整除关系,未单独展示反向论证。
原片引入公约数并追踪正向整除关系,未单独展示反向论证。
视频口头将 识别为最大公约数,但显示的线条仅在后来关于 gcd 相等的结论之前明确陈述了 和 。
证明中使用的 和 的整数因子;口头处理为最大公约数。
。
板书在公约数论证中使用整除符号。
板书在公约数论证中使用整除符号。
整除关系: 表示 整除 。
整数。
连续带余除法引入商与余数,并用方框突出递减界。
连续带余除法引入商与余数,并用方框突出递减界。
欧几里得算法连续除法步骤中的商和余数。
整数,由除法算法上下文隐含余数界限 和 ;黑板仅明确显示 和 。
板书在最大公约数归约等式中使用被除数。
a
最大公约数函数的第一个整数输入。
有序正整数算法中的正整数;基本情况允许非负值。
板书在最大公约数归约等式中使用除数。
b
最大公约数函数的第二个整数输入。
非负整数;进行除法时必须为正。
递减余数链在终止论证中达到零。
欧几里得余数链中的非负余数;编辑约定 以涵盖第一步即整除的情形。
非负整数
定义和小数值例子介绍正公约数与互质。
定义和小数值例子介绍正公约数与互质。
两个整数的 GCD 是能同时整除这两个数且无余数的最大正整数。如果两个数的 GCD 为 1,则称它们互质。
整数 a 和 b,不全为零;使用最大的正公约数。
讲解把向下枚举公约数与更快的余数算法作比较。
寻找 GCD 的一种朴素方法是检查从较小数到 1 的每一个整数,看它是否能同时整除这两个数。这种方法具有线性时间复杂度,对于大数来说效率低下。
正整数输入;在单位成本算术模型下,最坏情况下的整除测试次数与 min(a,b) 成线性关系。
板书第一项说明交换两个输入不改变最大公约数。
板书第一项说明交换两个输入不改变最大公约数。
GCD 函数参数的顺序不影响结果。
整数 a 和 b,不全为零。
下一项讨论一个正整数输入能够整除另一个输入的情况。
下一项讨论一个正整数输入能够整除另一个输入的情况。
如果正整数 a 整除另一个整数 b,那么 a 和 b 的最大公约数就是 a。
a 整除 b (a|b)
板书第三项用同余关系保持与模数的公约数。
板书第三项用同余关系保持与模数的公约数。
如果两个整数 a 和 c 对模 b 同余,它们与 b 的最大公约数是相同的。这一性质是欧几里得算法的基础,允许减小大数的计算规模。
整数 a 和 c;正整数模数 b。
板书保留最大公约数的交换性质。
视频列出一个基本事实:交换两个参数不会改变最大公约数。
整数 不全为零;GCD 为正。
板书保留正整数能够整除另一个整数的特殊情况。
如果 为正且整除 ,那么 和 的最大公约数恰好是 。
原片展示同余引理及正向公约数论证,公开笔记中的反向论证是编辑补充。
原片展示同余引理及正向公约数论证,公开笔记中的反向论证是编辑补充。
较早的原生引理帧确认了同余,而不是模型读取的集合成员记号。源显示正向因子蕴含;逆向由编辑补充。
对于整数 和正整数 ,把 替换为 保持最大公约数。原片展示正向公约数蕴含。编辑补充: 和 的公约数也整除 ,因此两组正公约数相同。
, 是整数。
。
板书把被除数与除数替换为除数与余数,保持最大公约数。
板书把被除数与除数替换为除数与余数,保持最大公约数。
欧几里得算法被呈现为对除法余数重复应用归约引理:将 替换为 ,然后是 ,依此类推,每一步都保持 gcd 不变。
整数输入 ,具有标准非负除法余数。
仅在 为正时继续用该余数作除数;为零时停止。
板书完成余数链并指出最后的正除数。
板书完成余数链并指出最后的正除数。
对正整数输入,把整数对替换为除数与非负余数。余数为零时返回前一个正除数;第一步即整除时返回原除数。
非负整数输入不全为零;展示的除法链使用 。
递归除法要求 并使用非负余数;当 时返回 。
复杂度幻灯片讨论余数界与对数级调用次数;公开算术成本条件为编辑补充。
复杂度幻灯片讨论余数界与对数级调用次数;公开算术成本条件为编辑补充。
对有序正整数输入,至多两次递归调用后,较大参数降到此前值的一半以下,除非算法已经终止。单位成本算术模型下,这给出按数值量级计算的对数级取余调用次数。
整数 ; 表示数值量级,不是二进制位数。
每次取余按单位成本计数;这里不是所有位运算次数的界。
原片把交换、整除与同余性质归为支撑算法的引理。
原片把交换、整除与同余性质归为支撑算法的引理。
欧几里得算法依赖于 GCD 的三个性质:交换律、一个数整除另一个数的情况,以及 GCD 与模同余之间的关系。
前两部分需要其陈述的整数和正性条件;同余用于正模数 b。
对满足每一部分特定条件的整数 a, b, c 进行全称量化。
讲解把前述最大公约数性质与余数算法联系起来。
讲解把前述最大公约数性质与余数算法联系起来。
视频提出三个引理——gcd 的对称性、一个正整数整除另一个时的 gcd,以及在减去倍数下 gcd 的保持——作为解释欧几里得算法的基础。
整数处于通常的 gcd 设置中。
对于第二个引理, 且 。
对于第三个引理,。
在每个引理中显示的整数变量上的全称量词。
原片在展示正向蕴含后陈述最大公约数相等,该相等结论需要笔记补充的反向蕴含。
原片在展示正向蕴含后陈述最大公约数相等,该相等结论需要笔记补充的反向蕴含。
显示的证明明确追踪了一个公因子 ;完全严谨还需要反向包含或诉诸 gcd 的定义,这在此片段中没有单独写出。
在条件 下, 和 的最大公约数等于 和 的最大公约数。
, 是整数。
。
对于满足假设的所有整数 和正整数 。
实际复杂度幻灯片比较新余数与先前被除数的一半。
对整数 ,新的第二个参数 至多是此前第一个参数 的一半。
对于所有有效输入 a, b
板书从把差写成整数倍开始同余论证,后续画面继续该论证。
板书从把差写成整数倍开始同余论证,后续画面继续该论证。
只有这个论证的开头位于前 0–101 秒的分析区间内;完整源视频继续。反向公约数蕴含关系将作为编辑性的数学澄清提供。
从假设 a ≡ c (mod b) 开始。
引理第三部分的假设。
根据同余的定义,b 必须整除 a 和 c 之间的差。
模同余的定义。
这意味着存在一个整数 y,使得 by 等于 a 减 c。
整除的定义。
显示的方程开始了论证。源视频在此分析区间之后继续;仅凭这个部分推导尚未建立两个 GCD 相等。
板书推出公约数整除差并陈述相等结论,反向公约数集合论证为编辑补充。
板书推出公约数整除差并陈述相等结论,反向公约数集合论证为编辑补充。
片段清楚显示了正向整除链,但没有单独显示为了完全对称地证明 gcd 集合相等所需的反向包含。
从 整除 的假设开始,因此存在整数 使得 。
整除的定义。
移项,把 用 、 和 表示。
的代数重排。
取整数 同时整除 和 ;原讲解将其放在最大公约数语境中。
证明设置中的假设 / 公因子的定义。
因为 整除 和 ,它也整除组合 。
整除在整数线性组合下的封闭性;说话者将其描述为乘以 的因子。
因为 ,之前的整除陈述变为 。
使用 进行替换。
源在正向蕴含后陈述相等。为了完成证明,还需取 和 的任何正因子;它整除 。因此两个正公因子集合重合。
编辑的反向包含,连同观察到的正向包含,证明了 GCD 的相等。
该等式对于整数 和正整数 是正确的。其完整证明使用了两个公因子蕴含;上述反向蕴含是编辑性的,未在源中单独显示。
板书展示连续符号除法及对应的最大公约数等式。
板书展示连续符号除法及对应的最大公约数等式。
停止情况在此 101–202 秒分析区间之外,并在完整源的后半部分解释。
应用 除以 引入商 和余数 。
整数除法算法。
将配对 替换为 而不改变 gcd。
归约引理,配合编辑的反向因子论证完成。
当 时,将 除以 ;否则停止。
整数除法算法。
重复相同的归约,从 传递到 。
对下一对应用相同的归约引理。
只要当前除数为正就重复。正整数余数严格递减,因此过程终止而不是无限继续。
编辑的非负整数下降;下一个源区间呈现终止规则。
欧几里得算法是通过迭代恒等式 经过逐渐变小的余数获得的。
实际幻灯片用反证法建立余数界,其中零商旁注有笔误;对应公开步骤已由编辑修正。
实际幻灯片误写零商会推出 ;正确结果是 。下面的商界步骤是编辑修正,并非照抄该错误旁注。
在整数 条件下,反设余数大于被除数的一半。
反证法假设
根据取模的定义,a 可以写成商乘以除数加上余数,其中余数小于除数。
除法算法
结合假设 和 得到这个不等式链。
不等式的传递性
由 可排除至少为二的商,且 要求商为正,因此 。特别地,零商会得到 ,而非幻灯片写的 。
编辑修正后的整数商界。
将 代入 得到 。但我们已确立 且 ,所以它们的和超过 a。
算术代换
我们推导出 ,但方程 在 时意味着 。这是一个矛盾。
逻辑矛盾
假设的大余数不可能存在,因此 。把这个界应用到两次调用,可得到限制取余调用次数所需的参数缩减。
开场显示小整数对以说明最大公约数与互质;下面的公约数列表是编辑核算。
开场显示小整数对以说明最大公约数与互质;下面的公约数列表是编辑核算。
求几对整数的 GCD。
对:(7, 21), (24, 30), (7, 9)
确定每对数的最大公约数。
对于 7 和 21,7 整除 21,所以 GCD 是 7。
GCD 的定义。
对于 24 和 30,公约数是 1, 2, 3, 6。最大的是 6。
GCD 的定义。
对于 7 和 9,唯一的公约数是 1。
GCD 的定义。
GCD(7, 21) = 7; GCD(24, 30) = 6; GCD(7, 9) = 1。
演讲者指出,由于 GCD(7, 9) = 1,数字 7 和 9 是互质的。
开场用一对整数提出高效计算最大公约数的问题。
文本框
蓝色背景
从通用标题过渡到具体问题示例。
开场以一对较大整数引出高效求最大公约数的方法;该数值只用作问题动机,原片没有逐步计算这一对数。
网格白板呈现编号引理与逐步写出的等式。
网格白板呈现编号引理与逐步写出的等式。
网格纸背景
手写文本和公式
引理陈述的出现。
引理第三部分证明步骤的顺序书写。
当证明第三部分时,引理的前两部分保持静止。
板书按引理陈述和逐步等式组织论证;反向公约数推理需要编辑补充。
网格板书在编号引理下逐行添加代数关系。
网格板书在编号引理下逐行添加代数关系。
“欧几里得算法”标题
手写引理列表
带有 、、、整除陈述和 的证明行
行在引理列表下方一个接一个添加。
证明从假设 增长到结论 。
黑板保持为单个静态书写表面,没有坐标轴或几何图形。
引理编号在证明上方保持可见。
板书组织归约论证;正向关系来自原片,公开反向论证明确标为编辑补充。
画面移向较低书写区域以展示连续余数等式。
画面移向较低书写区域以展示连续余数等式。
滚动的黑板视图
连续除法的新手写方程
表示延续的省略号
早期的引理证明向上移出主要焦点。
下方写入新行以将引理应用于除法余数。
最终可见状态在第二次归约后包括一个省略号。
相同的数学主题从引理延续到算法。
未引入数值示例;推导保持符号化。
滚动标志着从证明关键引理到将其用作欧几里得算法递归机制的转变。
板书画面移动,把余数链与前述最大公约数性质联系起来。
手写数学方程
视图垂直移动以显示上下文
相机平移时方程保持静止
视觉辅助工具,用于将最终结果与初始引理定义联系起来。
原片展示带零除数判断的 Java 风格递归函数。
代码块
从白板过渡到打字代码
代码逻辑与数学推导相匹配
演示递归数学定义如何直接转化为编程语法。
讲解通过与逐个测试候选数比较,引出更高效的算法。
人们可能认为检查所有向下到 1 的数字是计算 GCD 的一种可行策略。
视频强调这种暴力方法具有线性时间复杂度,对于大数来说太慢,从而引出欧几里得算法。
原片明确展示正向公约数蕴含,随后给出相等结论。
原片明确展示正向公约数蕴含,随后给出相等结论。
人们可能认为仅通过显示 和 的每个公因子都整除 ,写下的链条就证明了两个 gcd 的相等。
为了严谨地证明 ,还需要反向包含(或使用最大公约数定义的等效论证)。片段明确显示正向方向,然后陈述相等。
此分析区间在余数链仍继续时结束,完整原片随后解释终止规则。
此分析区间在余数链仍继续时结束,完整原片随后解释终止规则。
观众可能假设显示的链条已经指定了完整的欧几里得算法。
此 101–202 秒区间建立了归约机制。完整源稍后在余数变为 时停止并返回前一个正因子;没有完整源媒体遗漏。
原片从直接枚举公约数转向欧几里得算法。
欧几里得算法被提出作为一种专门用于应用和计算最大公约数的高效方法。
同余陈述为后续最大公约数归约提供不变量。
同余保持了与模数的公约数,并被应用于减少 GCD 计算;这是一种不变量,而不是 GCD 定义的推广。
余数步骤使用经编辑补全的公约数不变量。
余数步骤使用经编辑补全的公约数不变量。
归约引理,配合其编辑的反向公因子补充,证明了每个欧几里得余数步骤。
最大公约数相等陈述交换了整数对的顺序。
最大公约数相等陈述交换了整数对的顺序。
片段在结论时刻没有明确指向对称引理;连接是从显示的陈述推断出来的。
gcd 的对称性允许归约结果以第二个参数为先的形式写出,产生算法中使用的形式 。
带余除法等式提供最大公约数的下一组参数。
带余除法等式提供最大公约数的下一组参数。
每个欧几里得步骤都是在将被除数表示为除数乘以商加余数后,归约引理的一个实例。
讲解把递归函数与前述余数规则联系起来。
数学原理被直接应用于编写递归函数。
余数界用来说明递归调用次数为何是对数级。
修正后的减半论证说明有序正整数输入在单位成本算术模型下具有对数级递归取余调用次数。
原片比较直接搜索所需的算术测试次数。
同余引理陈述两个最大公约数表达式相等。
开头的板书等式把同余转化为整除。
板书把减去整数倍与保持公约数联系起来。
板书把减去整数倍与保持公约数联系起来。
连续带余除法旁边写有最大公约数相等的恒等式。
连续带余除法旁边写有最大公约数相等的恒等式。
突出的余数不等式说明递减与终止的依据。
突出的余数不等式说明递减与终止的依据。
原片把参数缩减与对应调用次数作比较。
展示的函数在第二个参数为零时返回第一个参数。
已覆盖 · 标题卡和问题介绍。
已覆盖 · GCD 的定义和示例。
已覆盖 · 讨论暴力法及其低效性。
已覆盖 · 介绍欧几里得算法的过渡幻灯片。
已覆盖 · 展示欧几里得算法的三部分引理。
已覆盖 · 同余论证从这里开始,并在 101 秒分析边界之后的源视频中继续;此区间已覆盖,并非缺失。
已覆盖 · 源显示正向公因子链并陈述相等;公开证明明确添加了所需的反向方向作为编辑内容。
已覆盖 · 可见两个符号余数归约。原生帧 201.8 确认同一黑板持续到最后一秒;终止规则出现在完整源的后半部分。
已覆盖 · 白板上的数学推导。
已覆盖 · 代码实现。
已覆盖 · 原片展示减半论证与复杂度结论;公开笔记披露零商旁注修正及算术成本模型。
已覆盖 · 结尾幻灯片;实际末帧确认没有后续数学内容。声明时长取整到整秒。