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

欧几里得算法(Euclidean Algorithm):求最大公约数的经典方法

欧几里得算法是计算两个非负整数最大公约数(Greatest Common Divisor,简称 GCD) 的高效算法,核心思想是 “辗转相除”,其历史可追溯至古希腊数学家欧几里得的《几何原本》(第 7 卷),是算法设计中 “迭代 / 递归思想” 的经典范例。

一、核心原理

1. 关键定理(算法基石)

对任意两个非负整数 a 和 b(假设 a≥b),满足:gcd(a,b)=gcd(b,amodb)其中 amodb 表示 a 除以 b 的余数(余数取值范围:余数)。

2. 终止条件

当余数为 0 时,此时的除数 b 就是原来两个数的最大公约数。例:若 amodb=0,则 gcd(a,b)=b(因为 b 能整除 a,且 b 是自身的最大约数)。

3. 直观理解(以具体例子说明)

求 gcd(48,18):

  • 第一步:48mod18=12(48 = 18×2 + 12),因此 gcd(48,18)=gcd(18,12);
  • 第二步:18mod12=6(18 = 12×1 + 6),因此 gcd(18,12)=gcd(12,6);
  • 第三步:12mod6=0(余数为 0),终止迭代,此时除数 6 就是 gcd(48,18)。
public class EuclideanAlgorithm {public static int gcdIter(int a, int b) {a = Math.abs(a);b = Math.abs(b);while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}public static void main(String[] args) {System.out.println(gcdIter(48, 18)); // 6System.out.println(gcdIter(0, 5));   // 5}
}

http://www.dtcms.com/a/507877.html

相关文章:

  • MLLM技术报告 核心创新一览
  • C++设计模式_行为型模式_策略模式Strategy
  • **发散创新:多智能体系统的探索与实践**随着人工智能技术的飞速发展,多智能体系统作为当今研究的热点领域,正受到越来越多关注
  • 音乐网站设计企业网络搭建与应用
  • Flink Data Sink 理论 、架构、语义保证、两阶段提交与可插拔拓扑
  • DeviceNet转Ethernet/IP食品饮料包装线码垛机器人高效通信方案
  • 《基于分布式多模态传感模块的全身尺度机器人皮肤:设计、评估与应用》TR-O 2025论文解析
  • 亿万网站网站开发详细流程
  • 还是网站好买一个app软件要多少钱
  • 无锡万度网站建设WordPress Demo演示
  • 智能外呼是什么意思
  • 【读论文】——基于光谱学的玉米种子品质检测及其成像技术综述
  • 如何自建网站满分作文网
  • 服务器/Pytorch——对于只调用一次的函数初始化,放在for训练外面和里面的差异
  • iOS 混淆与 IPA 加固一页式行动手册(多工具组合实战 源码成品运维闭环)
  • PySide6 使用搜索引擎搜索 多类实现 更新1次
  • 宁波网站优化的关键企业网站后台管理系统模板
  • 网站开发项目需求分析说明书电子商务网站开发与实现
  • 群晖实现证书90天自动更新(无需对外提供80端口)
  • AMCL自适应(KLD - Sampling: Adaptive Particle Filters)一种基于粒子滤波的移动机器人定位算法
  • NOR FLASH
  • 网站代码优化方案网站建设和编程的区别
  • 重庆建设工程造价管理协会网站直播网站开发价格
  • 【Nest】集成测试
  • ELK运维之路(Logstash基础使用-7.17.24)
  • 快速排序(JAVA详细讲解快速排序的四种方式)
  • 数据结构四大简单排序算法详解:直接插入排序、选择排序、基数排序和冒泡排序
  • 官渡网站建设wordpress单页面制作
  • 企业电子商务网站开发数据库设计昆明seo博客
  • 东道 网站建设erp系统哪家做得好