欧几里德算法及python脚本实现

原创 2016年05月31日 16:42:17
欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数。其计算原理依赖于下面的定理:

定理: gcd(a, b) = gcd(b, a mod b)

定理证明:
  a可以表示成a = kb + r, 则r = a mod b
 (1) 先假设d是a, b的一个公约数, 则有  d|a, d|b, 而r = a - kb, 等式两边同时除以d,则r/d=a/d - kb/d。因为d是a,b的一个公约数,则r也可以被d整除,因此d|r。所以,d是(b, a mod b)的公约数。

 (2)反过来,如果d是(b,a mod b)的公约数,则d|b, d|r, 由于a = kb + r,因此d也是(a, b)的公约数。
 (3) 综上所述,(a, b) 和(a, a mod b)的公约数是一样的,其最大公约数也必然相等,得证。

欧几里德的Python语言描述为:


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C001:最大公约数欧几里德算法及Python实现

欧几里德算法又称辗转相除法,用于计算两个整数m, n的最大公约数。其计算原理依赖于下面的定理:     gcd(m, n) = gcd(n, m mod n) 这个定理的意思是:整数m、n...

关于扩展欧几里德算法的报告

  • 2012年09月13日 18:55
  • 427KB
  • 下载

扩展欧几里德算法 递归和非递归实现及证明

关于欧几里得算法,贝祖等式,扩展欧几里得算法,Wikipedia的解释非常非常详细了。 另外,看了好多别人优秀的总结,我认为最详尽的就是ACM之家的总结。 这里自己再总结一次…实际上就是把别人...
  • yoer77
  • yoer77
  • 2017年04月07日 16:19
  • 1086

基于欧几里德距离的K最近邻(KNN)算法的实现(JAVA版)

K邻近(k-Nearest Neighbor,KNN)分类算法是最简单的机器学习算法了。它采用测量不同特征值之间的距离方法进行分类。它的思想很简单:计算一个点A与其他所有点之间的距离,取出与该点最近的...

欧几里德算法和仿射密码

  • 2010年05月08日 16:17
  • 2KB
  • 下载

数据结构与算法分析基础----概念初步&最大子序和四种算法C++实现&对分查找&欧几里德算法

本文为《数据结构与算法分析-C语言分析》Mark Allen Weiss 前两章的读书笔记 用C++重写了书里的C语言例子...
  • zmdsjtu
  • zmdsjtu
  • 2016年11月28日 16:55
  • 455

MFC 欧几里德算法

  • 2009年01月06日 13:19
  • 1.8MB
  • 下载

几何原本+欧几里德算法

  • 2009年12月30日 17:12
  • 3.3MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:欧几里德算法及python脚本实现
举报原因:
原因补充:

(最多只允许输入30个字)