当前位置: 首页 > news >正文

深入浅出理解欧几里得算法的原理

欧几里得算法

一、干什么用?

算出最大两个非负整数的最大公约数。虽然小学知识,大家概念很清楚,但我们这里还是提下,能被两个数A,B整除的最大整数C,就称C是A和B的最大公约数。可以用GCD(A,B)表示。GCD是Greatest Common Divisor的缩写。

二、欧几里得算法的内容

欧几里得是快速找出两个数最大公约的一种算法。算法核心思想:

例如找A,B的最大公约数GCD(A,B),并且A>B

  • 如果A=0,那么GCD(A,B)=GCD(0,B)=B;
  • 如果B=0,那么DCD(A,B)=GCD(A,0)=A;
  • 用余数表示A,A=B*Q+R,Q表示B的几倍,R是余数。
  • GCD(A,B)=GCD(B,R)

举例说明:

A=12,B=8;

由12 = 8*1+4;根据欧几里得算法得到GCD(12,8)=GCD(8,4);

然后A=8,B=4;

由8 = 4*2+0;根据欧几里得算法得到GCD(8,4)=GCD(4,0);

因为A!=0,B=0,所以GCD(4,0)=4;

以上我们可以得出:GCD(12,8)=GCD(8,4)=GCD(4,0)=4;

从上面的例子中我们可以看到欧几里得算法,他把一个复杂的问题逐渐简化成了简单问题。这种算法思想就是通常我们说的:分治思想(Divide and Conquer)。

三、证明欧几里得思想

1.证明GCD(A,0)=A

  • 我们知道A的最大公约数是A;
  • A*0=0;即0除以任何整数都是0;因此我们可以说任何数都可以是0的约数。
  • 因为A大于0,所以GCD(A,0)=A;

同理我们可以证明出:GCD(B,0)=B。

2.证明GCD(A,B)=GCD(B,R)

要想证明GCD(A,B)=GCD(B,R),首先我们需要证明GCD(A,B)=GCD(B,A-B);

先上图:

三个数,A,B,C,满足A-B=C;

图的左侧说明:

GCD(A,B)是A和B的最大公约数,同时就说明其能整除A和B;可以将其表示为:

X*GCD(A,B)=A;Y*GCD(A,B)=B;

得到:A-B=X*GCD(A,B)-Y*GCD(A,B)=(X-Y)*GCD(A,B)=C

==>GCD(A,B)也是C的一个约数;

图的中间说明:

GCD(B,C)是B和C的最大公约数,同时就说明其能整除B和C;可以将其表示为:

M*GCD(B,C)=B;N*GCD(B,C)=C;

得到:B+C=M*GCD(B,C)+N*GCD(B,C)=(M+N)*GCD(B,C)=A

==>GCD(B,C)也是A的一个约数;

图的右侧说明:

  • GCD(A,B)是B的约数,同时也是C的约数,算是B和C的一个公共约数,但是肯定小于或等于B和C的最大公约数,
  • 所以GCD(A,B)<=GCD(B,C);
  • GCD(B,C)是A的约数,同时也是B的约数,算是A和B的一个公共约数,但是肯定小于或等于A和B的最大公约数
  • 所以GCD(B,C)<=GCD(A,B);
  • 最终得出GCD(A,B)=GCD(B,C)=GCD(B,A-B)

我们证明了GCD(A,B)=GCD(B,A-B),接下来我们证明GCD(A,B)=GCD(B,R)

GCD(A,B)=GCD(B,A-B)可以写成GCD(A,B)=GCD(A-B,B)

GCD(A,B)=GCD(A-B,B)可以得出GCD(A-B,B)=GCD(A-2B,B)

以此类推:GCD(A,B)=GCD(A-B,B)=GCD(A-2B,B)==GCD(A-3B,B)=GCD(A-Q*B,B)

因为A可以表示成:A=Q*B+R;将其代入到GCD(A-Q*B,B)中得到:

GCD((Q*B+R)-Q*B,B)=GCD(R,B)=GCD(B,R);

进一步得到:GCD(A,B)=GCD(B,R)

http://www.jsqmd.com/news/1367029/

相关文章:

  • Escrcpy终极指南:3步实现Android设备无线控制与高效管理
  • RFID软硬件系统智能化怎么选?中卡全链路方案深度解析
  • 终极英雄联盟对局先知:选人阶段智能识别队友实力,快速提升排位胜率
  • Mem Reduct终极指南:5分钟学会Windows内存清理与优化
  • 基于Dev-C++与SDL的水下迷宫游戏开发:从项目结构到核心机制解析
  • 2-甲基丁酰氯选型指南:从纯度到合规,专业采购推荐 - 品研笔录
  • 终极Windows界面自定义指南:如何用ExplorerPatcher免费恢复经典操作体验
  • OpenChamber:多端可用、功能强大的自主开发环境,还保障隐私!
  • 2026成都高性价比家装公司推荐,晶玛装饰ENF环保材料闭口合同解析 - 资讯123
  • 告别电脑噪音烦恼:5分钟掌握Fan Control风扇控制终极方案
  • Java字节码解密实战:突破商业混淆器的完整技术指南
  • 终极跨平台翻译神器:3分钟掌握pot-desktop划词翻译与OCR识别
  • Figma中文界面终极解决方案:3分钟实现全界面本地化
  • Android开源项目终极宝典:200+精选资源助你快速提升开发效率
  • 高性能AI视频生成架构设计与实现:基于FramePack Studio的技术演进路线
  • 深度剖析RuoYi-Vue @DataScope注解:基于AOP与MyBatis的动态数据权限实现
  • 大语言模型高阶逻辑推理阶跃式涌现本质:从现象到多尺度相变机制
  • 基于stm32的脉搏血氧仪设计
  • SpaceX最快下周末完成收购Cursor,是算力吞金兽的自救还是另有图谋?
  • 2026张家港注册公司代办机构推荐:哪家好?口碑评测 - 品牌优企推荐
  • uniapp iOS App 上架
  • 从加解密到HTTPS
  • FanControl终极指南:高效掌控Windows系统风扇与散热管理
  • 存量房翻新涂料品牌怎么联系 高效对接芙兰雅艺术涂料 - 热点品牌推荐
  • 西安社区服务软件开发实战:从需求到上线的完整指南
  • Energy AI:像调用函数一样集成AI能力,解决工程化落地痛点
  • Ludusavi:游戏进度的智能守护者,从此告别存档丢失的烦恼
  • 当Windows安装程序“自作主张“时:In-Place_Upgrade_Helper如何帮你夺回控制权
  • 终极戴尔笔记本风扇控制指南:让你的设备静音又凉爽
  • RuoYi-Vue:5步快速搭建企业级权限管理系统的终极指南