最大公约数gydF4y2Ba
的gydF4y2Ba最大的普通除数(GCD)gydF4y2Ba,也称为gydF4y2Ba最大的共同因素gydF4y2Ba,两个数中能同时除两个数的最大数。例如,20和15的最大公因数是5,因为5能除20和15,再大的数也没有这个性质。这个概念很容易扩展到两个以上数字的集合:一组数字的GCD是它们各自除以的最大数字。gydF4y2Ba
GCD被用于各种各样的应用gydF4y2Ba数论gydF4y2Ba,特别是在gydF4y2Ba模运算gydF4y2Ba这样的加密算法gydF4y2BaRSAgydF4y2Ba.它也用于更简单的应用程序,例如gydF4y2Ba简化分数gydF4y2Ba.这使得GCD成为数论中一个相当基本的概念gydF4y2Ba算法gydF4y2Ba已被发现有效地计算它。gydF4y2Ba
GCD传统上被记作gydF4y2Ba ,或者当上下文清楚时,简单地gydF4y2Ba .gydF4y2Ba
计算最大公约数gydF4y2Ba
只需简单地列出几个数字的GCD可以计算gydF4y2Ba因素gydF4y2Ba每个数字并确定最大的常见情况。虽然在实践中,这是非常低效的,但对于特别小案例,它是手工的。可以使用因子对方法分开该过程:一旦确定一个因子gydF4y2Ba 的数量gydF4y2Ba ,商品gydF4y2Ba 必然是一个因素。例如,由于2是24倍,gydF4y2Ba 也是一个因素。gydF4y2Ba
求的最大公约数gydF4y2Ba 和gydF4y2Ba
每个数字的除数是给出的gydF4y2Ba
出现在每个列表上的最大数字是gydF4y2Ba 这是最大公约数:gydF4y2Ba
当数字很大时,因素列表可能是对上述方法非常困难的。一个更有效的方法是首先计算gydF4y2Ba素质分解gydF4y2Ba每个数字中的每个数字。得到的GCD是每个分解中出现的素材的产物,对因子中的最小指数。这令人困惑,所以让我们看看一个例子:gydF4y2Ba
计算gydF4y2Ba .gydF4y2Ba
我们有gydF4y2Ba
因为2出现在每一个因数分解中,它也会出现在GCD中。在分解时取最小的幂,在这个例子中是2。所以GCD将包含gydF4y2Ba 在其分解。继续沿着这些线,我们得到GCD为gydF4y2Ba
在正式符号中,如果是素质的因素gydF4y2Ba 和gydF4y2Ba 是gydF4y2Ba
那里gydF4y2Ba 是独特的素质和gydF4y2Ba 和gydF4y2Ba 是非负整数,然后gydF4y2Ba
一个类似的公式适用于求几个整数的GCD,方法是为每个质数取最小的指数。gydF4y2Ba
虽然这一点gydF4y2Ba素质分解gydF4y2Ba方法通常是用手做的最实用,偶尔确定原始分解是gydF4y2Ba非常困难的gydF4y2Ba,在这种情况下,就需要另一种方法。一般来说,在这些情况下,gydF4y2Ba算法gydF4y2Ba是在下一节中使用的。gydF4y2Ba
欧几里得算法等等gydF4y2Ba
由于使用大量难以用手使用,因此有许多算法用于将问题简化到可管理的级别。由于GCD有属性gydF4y2Ba
GCD可以“一次计算两个”,例如,如果我们想求20、28、24的GCD,我们可以先求gydF4y2Ba 和gydF4y2Ba (即4),然后是4和24(也是4)的GCD。因此,几乎所有算法都关注于确定两个数字的GCD的最简单情况。gydF4y2Ba
的gydF4y2Ba欧几里得算法gydF4y2Ba是基于以下关键观察:如果gydF4y2Ba 分gydF4y2Ba 和gydF4y2Ba 分gydF4y2Ba ,然后gydF4y2Ba 也分gydF4y2Ba 例如,(通过gydF4y2Ba模运算gydF4y2Ba).这意味着GCDgydF4y2Ba 和gydF4y2Ba 与GCD相同gydF4y2Ba 和gydF4y2Ba ,这是进步,因为这使得数字变小。gydF4y2Ba
因此,我们可以重复这个过程,形成一个算法:gydF4y2Ba
- 如果gydF4y2Ba ,停止 - GCDgydF4y2Ba 和gydF4y2Ba 当然,gydF4y2Ba .否则,请转步骤2。gydF4y2Ba
- 如果gydF4y2Ba , 代替gydF4y2Ba 与gydF4y2Ba ,然后回到第1步。gydF4y2Ba
- 如果gydF4y2Ba , 代替gydF4y2Ba 与gydF4y2Ba ,然后回到第1步。gydF4y2Ba
确定84和132的最大公因数。gydF4y2Ba
我们遵循我们的算法:gydF4y2Ba
- 是84,gydF4y2Ba 是132。自gydF4y2Ba ,我们替换gydF4y2Ba 与gydF4y2Ba .gydF4y2Ba
- 是84,gydF4y2Ba 是48.gydF4y2Ba ,我们替换gydF4y2Ba 与gydF4y2Ba .gydF4y2Ba
- 是36岁gydF4y2Ba 是48.gydF4y2Ba ,我们替换gydF4y2Ba 与gydF4y2Ba .gydF4y2Ba
- 是36岁gydF4y2Ba 是12。自gydF4y2Ba ,我们替换gydF4y2Ba 与gydF4y2Ba .gydF4y2Ba
- 是24岁gydF4y2Ba 是12。自gydF4y2Ba ,我们替换gydF4y2Ba 与gydF4y2Ba .gydF4y2Ba
- 是12,gydF4y2Ba 是12。自gydF4y2Ba ,GCD是12。gydF4y2Ba
由于数字在每个点变小,因此该算法最终将完成并产生GCD。在实践中,如主的描述,这可以更有效gydF4y2Bawiki页面gydF4y2Ba例如,你可能已经注意到,一旦我们读到36和12,我们可以“跳过”gydF4y2Ba 步。欧几里德算法用手尤其有用,因为一旦数量足够低,通过检查将变得“显而易见”(例如,您可能已经注意到了gydF4y2Ba 总的来说,GCD为12gydF4y2Ba ).gydF4y2Ba
另外还有一个稍微复杂一点的算法gydF4y2BaStein的算法gydF4y2Ba,这是基于同样的观察,但另外检查gydF4y2Ba奇偶校验gydF4y2Ba两个数字:gydF4y2Ba
- 如果gydF4y2Ba ,停止 - GCDgydF4y2Ba 和gydF4y2Ba 当然,gydF4y2Ba .否则,请转步骤2。gydF4y2Ba
- 如果gydF4y2Ba 和gydF4y2Ba 两者都是偶数吗gydF4y2Ba 与gydF4y2Ba ,gydF4y2Ba 与gydF4y2Ba ,并递增柜台。gydF4y2Ba
- 如果gydF4y2Ba 甚至和gydF4y2Ba 是奇数,取代gydF4y2Ba 与gydF4y2Ba .gydF4y2Ba
- 如果gydF4y2Ba 是奇怪的gydF4y2Ba 是偶数,取代gydF4y2Ba 与gydF4y2Ba .gydF4y2Ba
- 如果gydF4y2Ba 和gydF4y2Ba 既是奇数,替换gydF4y2Ba 与gydF4y2Ba (就像上面的欧几里得算法)。gydF4y2Ba
这是,对于计算机来说,某种程度上更有效率,因为乘2除法的使用非常快gydF4y2Ba二进制数gydF4y2Ba.手工携手合作也有些自然;基本上,如果您在欧几里德算法的任何时候注意到“明显”的常见因素(这里,“明显”普通因子是2,但也可以是其他人使用gydF4y2Ba可分性规则gydF4y2Ba).gydF4y2Ba
GCD的应用gydF4y2Ba
GCD用于许多简单和复杂的应用程序。实际上,您可能已经隐式地计算了gcd,而没有在何时识别它gydF4y2Ba简化分数gydF4y2Ba:减少分数是将分子和分母除以其GCD的问题。gydF4y2Ba
是什么gydF4y2Ba 在最低的条件吗?gydF4y2Ba
用上述任何一种方法,我们计算的最大公约数gydF4y2Ba 和gydF4y2Ba 是gydF4y2Ba 划分顶部和底部gydF4y2Ba 得到gydF4y2Ba .这个分数确实是最低项(正如我们所期望的),因为它是唯一能同时除以两个数的正整数gydF4y2Ba 和gydF4y2Ba 是gydF4y2Ba
整数对,例如gydF4y2Ba 和gydF4y2Ba 谁的GCD是gydF4y2Ba 被称为gydF4y2Ba相对素质gydF4y2Ba,并且有很多有用的原因,例如gydF4y2BaBezout的身份gydF4y2Ba.gydF4y2Ba
GCD也用于gydF4y2Ba扩展欧几里德算法gydF4y2Ba来计算gydF4y2Ba模块化反转gydF4y2Ba,这在加密方案中具有极端重要性gydF4y2BaRSAgydF4y2Ba.当考虑到gydF4y2Ba元素的顺序gydF4y2Ba,特别是在gydF4y2Ba拉格朗日定理gydF4y2Ba特别是适用于gydF4y2Ba模运算gydF4y2Ba.这使它成为一个共同主题gydF4y2Ba竞争和奥林斯德gydF4y2Ba.gydF4y2Ba