尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

欧几里得算法与扩展欧几里得算法详解

欧几里得算法与扩展欧几里得算法详解
📅 发布时间:2026/6/18 16:42:44

在数论和密码学中,欧几里得算法(Euclidean Algorithm)是一个古老而重要的算法,用于计算两个整数的最大公约数(GCD)。

欧几里得算法(更相减损法)

欧几里得算法基于以下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。用数学公式表示为:

\[\gcd(a, b) = \gcd(b, a \bmod b) \]

当余数为0时,此时的除数就是最大公约数。

  1. 用较大数除以较小数,得到余数
  2. 用较小数除以余数,再次得到新的余数
  3. 重复这个过程,直到余数为0
  4. 此时的除数就是最大公约数
// 递归实现
int gcd_recursive(int a, int b) {if (b == 0) return a;return gcd_recursive(b, a % b);
}// 迭代实现
int gcd_iterative(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;
}

中国古代的更相减损术是中国古代数学著作《九章算术》中记载的一种求最大公约数的方法,成书于东汉时期(约公元1世纪)。《九章算术》的"方田"章中记载:

"约分术曰:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。"

更相减损术的核心思想是:两个数的最大公约数等于较小数与两数差的最大公约数。用现代数学符号表示为:

\[\gcd(a, b) = \gcd(\min(a, b), |a - b|) \]

当两数相等时,这个相等的数就是最大公约数。减法实际上可以替换为除法取余(减到不能再减),这样就接近现代使用的欧几里得算法了。

欧几里得算法的时间复杂度

其时间复杂度为 \(O(\log(\min(a, b)))\)。

可以使用数学知识证明(有难度),欧几里得算法在计算 \(\gcd(a, b)\) 时,最多执行 \(2 \cdot \lfloor \log_2 b \rfloor + 1\) 次除法操作(最坏情况为当输入为连续的斐波那契数时)。平均除法的次数是 \(\frac{12 \ln 2}{\pi^2} \ln n \approx 0.843 \ln n\)。

扩展欧几里得算法

扩展欧几里得算法不仅计算 \(\gcd(a, b)\),还找到整数 \(x\) 和 \(y\),使得满足贝祖等式:

\[ax + by = \gcd(a, b) \]

即让 \(a\) 和 \(b\) "拼出" 其最大公约数。

在欧几里得算法的每一步中,我们有:

  • \(a = bq + r\),其中 \(q\) 是商,\(r\) 是余数
  • \(\gcd(a, b) = \gcd(b, r)\)

我们可以将余数 \(r\) 表示为:

  • \(r = a - bq\)

在递归的返回过程中,我们利用这个关系来构造 \(x\) 和 \(y\)。

int extended_gcd(int a, int b, int &x, int &y) {if (b == 0) {x = 1;y = 0;return a;}int x1, y1;int gcd = extended_gcd(b, a % b, x1, y1);x = y1;y = x1 - (a / b) * y1;return gcd;
}

扩展欧几里得算法可以用于求解形如 \(ax \equiv b \pmod{m}\) 的线性同余方程(也包括求解乘法逆元)。

相关新闻

  • 完整教程:flink批处理-时间和窗口
  • 10.3 考试总结
  • 占个位置~

最新新闻

  • Python 练习题讲解 3 · 字符串
  • 东营换轮胎怎么选?本地市场盘点、轮胎选购避坑+门店筛选完整指南 - 国麟测评
  • Element Plus 组件库 + 美化页面
  • 上海澳洲留学社科类文书中介:精选案例客观评估 - 虚拟星辰
  • 微信支付AI卡,充多少花多少
  • 英雄联盟Akari助手:从青铜到王者的终极游戏效率提升指南

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号