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

辗转相除法(求最大公约数)

辗转相除法(求最大公约数)

做算法题,总是会遇到求两个数的最大公约数的场景,但是一直不记得这个算法,或者这个算法记得不熟。今天来记录一下。

引入

149. 直线上最多的点数

这道题目中,要求我们找到图中所有的点,最多点的一条直线的点数是多少。我们就需要用到求x和y最大公约数来对斜率进行标准化,也可以说是归一化。

原理

辗转相除法的过程如下例子。

例子:求 GCD(48, 18)

我们按照规则来:

gcd(48, 18)
= gcd(18, 48 % 18)   // 48 ÷ 18 = 2 余 12
= gcd(18, 12)
= gcd(12, 6)
= gcd(6, 0)          // 到 0 了,返回 6

答案是 6。

gcd(a,b) = gcd(b,a%b),直到b等于0的时候返回a。

核心思想其实就是如果一个数能整除a和b,那么它一定可以被a-b整除,也一定能被a-nb整除(nb<=a)。所以我们每次将a和b缩小为b,a%b。a%b的操作其实就相当于约掉了b还剩下的数,该数也要能被最大公约数约掉。

总结

用大除小取余数,小与余数变成新的一对,直到余数为 0”

http://www.xdnf.cn/news/13564.html

相关文章:

  • Boost.Interprocess 介绍与使用
  • 2025年高考志愿填报指导资料
  • shap可解释恶意流量检测
  • Zab协议剖析:崩溃恢复与顺序原子广播
  • JS手写代码篇---手写深拷贝
  • 万字深度解析注意力机制全景:掌握Transformer核心驱动力​
  • PHP性能提升方案
  • Redis的主从复制底层实现
  • 数组方法_push()/pop()/数组方法_shift()/unshift()
  • Springboot中 MyBatis-Flex TableDef 的使用
  • 常见的CAN总线协议面试题
  • 一套基于Apple watch电话手表包含150个覆盖商务、健康、爱好、定位、时钟、挂件的移动端UI界面的psd
  • 多项式求和
  • 复合材料成型工艺
  • 孙宇晨Token 2049高峰对话,技术话题与社会议题相结合
  • SHA-1算法详解:原理、特点与应用
  • ( github actions + workflow 01 ) 实现爬虫自动化,每2小时爬取一次澎湃新闻
  • Yakit 热加载入门学习指南
  • 深入理解 PCIe 协议中 BDF(Bus/Device/Function)分配与管理机制
  • (九)现代循环神经网络(RNN):从注意力增强到神经架构搜索的深度学习演进
  • 广东省省考备考(第二十六天6.11)—言语:语句表达(练习)
  • leetcode_283.移动零
  • 品牌控价需要精准SKU 数据监测
  • 【 WWDC25:新系统,新命名】
  • 五款MySQL 可视化客户端软件
  • 相机--单目相机
  • 《tqdm:让你的代码会“喘气”的神奇进度条!》
  • 性能测试Locust的使用
  • Docker pull时报错:https://registry-1.docker.io/v2/
  • FastAPI基础入门(三)