最大公因数,又叫gcd/最大公约数。

解决的两大算法:更相减损 辗转相除

以下附简单证明

更相减损

记住:这是我们中国人的算法!

用大数减小数的差和小数的最大公约数与原来两个数的最大公约数相等

证明:

代码实现

int gcd(int x , int y) {if(x==y) return x;if(x<y)return gcd(y-x , x);return gcd(x-y , y);
}

辗转相除

又叫欧几里得算法

证明:

稍微解释一下上面的证明(证明来自百度百科)

从上到下看下来应该也就是倒数第四行的结论可能有问题吧,其实可以知道mmm和nnn是互质的(因为如果不互质,则第一行假设不成立),所以y%x一定不等于零,所以y+kxy+kxy+kx一定与xxx互质,那么就有倒数第四行的“可得”了。

代码实现:

int gcd(int x , int y) {return y==0?x:gcd(y,x%y);
}

忘记好多知识点了,第一遍学的时候也不仔细也没搞懂原理

希望大家这一遍看过就真的搞懂这个算法,手推一下证明过程哦

【知识学习】最大公因数gcd相关推荐

  1. 最大公因数GCD的分配律、结合律 - 证明及其简单应用

    最大公因数GCD的分配律.结合律 - 证明及其简单应用 背景简介 分配律 Distributive Law 结合律 Associative Law 简单应用(完成题目证明) 背景简介 在学习数论相关知 ...

  2. C++求最大公因数(gcd)的六重境界

    前言 众所周知,最大公因数(gcd)是C++程序中第二常见的函数(仅次于判素数).正因此,一个简单的gcd也能被不同的OIER写出不同的"境界". 话不多说,直接开始! 第一境界: ...

  3. 虚幻引擎的数学知识学习教程 Math for Unreal Engine (Early Preview)

    通过做真实世界的 Unreal Engine项目来学习数学 你会学到什么 理解游戏开发对数学的基本需求 将数学直接应用到用例中,而不是钻研理论(用我们的示例项目进行实践) 正确编辑短视频,节省您的时间 ...

  4. 三代测序知识学习----Sequel

    三代测序知识学习----Sequel (2017-03-26 22:38:34) 转载▼   分类: 三代 知识链接:http://www.pacb.com/blog/new-chemistry-so ...

  5. 计算机二级二叉树基础知识,2017年计算机二级公共基础知识学习教程:树与二叉树...

    (六)树与二叉树 1.树的基本概念 树是一种简单的非线性结构.在树结构中,数据元素之间有着明显的层次结构.在树的图形表示中,用直线连接两端的结点,上端点为前件,下端点为后件. 在树结构中,每一个结点只 ...

  6. c语言运算符ppt,C语言知识学习运算符.ppt

    C语言知识学习运算符.ppt 第三章,C语言运算符,回顾,变量和常量的含义 熟悉基本数据类型 - int.char.float 和 double 使用算术运算符 理解类型转换 熟练使用 scanf 和 ...

  7. 安全测试3_Web后端知识学习

    其实中间还应该学习下web服务和数据库的基础,对于web服务大家可以回家玩下tomcat或者wamp等东西,数据库的话大家掌握基本的增删该查就好了,另外最好掌握下数据库的内置函数,如:concat() ...

  8. Python 基础知识学习笔记——NumPy

    Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...

  9. Python 基础知识学习笔记——OpenCV(1)

    Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...

  10. Python基础知识学习笔记——Matplotlib绘图

    Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...

最新文章

  1. oracle9i安装不上,终于成功安装oracle9i了(Cent OS 4.0+oracle9204)
  2. 1059 Prime Factors
  3. 最终选型 Blazor.Server:又快又稳!
  4. 树的重心 背诵用模板
  5. Android Studio 导入OpenCV 并调试运行face-detection例子
  6. 面试高级测试工程师修炼之接口测试平台开发
  7. 数据库decimal对应java什么类型_mysql decimal(10,2)对应java类型
  8. matplotlib 操作子图(subplot,axes)
  9. 串口通信linux单片机,Linux与单片机串口通信
  10. 计算机专业核心基础学习路线!
  11. 关于信号强度单位db和dBm
  12. Python 报错 UnboundLocalError: local variable ‘xxx‘ referenced before assignment
  13. 贷超分销系统的模式!
  14. (4)pokeman_用图片对模型进行测试
  15. 2020年中国企业直播营销场景案例研究报告
  16. 向list中增加元素的三种方法
  17. tomcat配置url跳转_Tomcat
  18. 2022年初级审计师考试综合试题及答案
  19. 被设计用于控制计算机英语怎么说,关于计算机专业MVC简介概述的毕业设计论文英文英语外文文献翻译成品资料:模型-视图-控制器(MVC)介绍(中英文双语对照).docx...
  20. Python爬虫入门实战学习笔记(一)

热门文章

  1. 国家职业资格:计算机网络管理员
  2. 拿什么拯救你的硬盘?十大绝招帮你忙
  3. 日常部署之OA办公系统源码OA协同办公源码包含CRM客户管理系统+内部聊天工具+自适应手机(含php源码)
  4. 好看简约加速器官网源码
  5. /etc/shadow文件介绍
  6. Skeleton骨架总结
  7. 将VSCode设置成中文
  8. 基于SSM的概念可视化程序设计学习系统毕业设计源码021009
  9. 历届奥斯卡最佳影片奖(推荐经典电影)
  10. sqlserver如何修改服务器排序规则,修改sqlserver2008数据库的排序规则 (转)