欧几里得算法:

求a,b的最大公约数
gcd(a,b)= gcd(b,a%b)

ll gcd(ll a,ll b)
{return b==0?a:gcd(b,a%b);
}

扩展欧几里得算法:

如果a,b是整数,一定存在x和y使得ax+by=gcd(a,b)
也就是ax+by=m的话,m一定是gcd(a,b)的倍数
假设当前我们在求的时a和b的最大公约数,而我们已经求出了下一个状态:b和a%b的最大公因数,并且求出了一组x1和y1使得 : b * x1+(a%b) * y1 = gcd
结论: x = y1 , y = x1 – a / b * y1
得到的是特解,如何由特解推出其他的整数解:
对于关于x,y的方程a * x + b * y = g 来说,让x增加b/g,让y减少a/g,等式两边还相等。
对于ax+by=c的一组解(x0,y0),则它的任意整数解都可以写成(x0+k * b1,y0+k * a1)其中 b1 = b / gcd(a,b), a1 = a/gcd(a,b).
我们就可以用 (x0 % b1 + b1 ) % b1得到它的最小正整数解了
此处x0= x * c / gcd(a,b)

#include<iostream>
#include<cstdio>
#include<cmath>using namespace std;int exgcd(int a,int b,int &x,int &y)//扩展欧几里得算法
{if(b==0){x=1;y=0;return a;  //到达递归边界开始向上一层返回}int gcd=exgcd(b,a%b,x,y);int y1=y;    //把x y变成上一层的int x1=x;y=x1-(a/b)*y1;x=y1;return gcd;     //得到a b的最大公因数
}

数论 欧几里得与扩展欧几里得相关推荐

  1. 欧几里得与扩展欧几里得总结

    欧几里得 来看看一个常见的\(gcd\)代码 int Gcd(a,b){return (b==0)?a:Gcd(b,a%b); } 入门的一个知识吧,但是你会证明吗? \(emmm\) 好吧我就只是背 ...

  2. 欧几里得和扩展欧几里得

    别人总结的,很详细,http://www.cnblogs.com/frog112111/archive/2012/08/19/2646012.html 欧几里得算法,就是人们常说的辗转相除法,比较好理 ...

  3. 【笔记】 欧几里得(扩展欧几里得)

    欧几里得 本质:利用辗转相减法求最大公约数,即 gcd(a, b). 数学表达: 设 a > b ,则                          gcd(a, b) = gcd(a-b, ...

  4. 乘法逆元之欧几里得和扩展欧几里得

    乘法逆元 文章目录 乘法逆元 一.模运算的性质 二.除法的模运算 1.除法模运算 2.解决除法模运算问题 三.乘法逆元 1.定义 2.**逆元是干什么的呢** 四.求解逆元 1.费马小定理 2.扩展欧 ...

  5. 欧几里得、扩展欧几里得、同余

    一.同余: 1.若整数a和整数b除以正整数m的余数相等,则称a,b模m同余,记作a≡b(mod m). 2.费马小定理:若p是质数,则对于任意整数a,有ap ≡a(mod p). 3.欧拉定理:若正整 ...

  6. 欧几里得,扩展欧几里得,孙子定理

    欧几里得 这人是真的厉害! 辗转相除法 #include <iostream> #include <cstring> #include <algorithm>usi ...

  7. 数论读书笔记——欧几里得和扩展欧几里得

    欧几里得: 欧几里得算法: 定理1:整数a≥b>0,令r0=a,r1=b如果我们做带余除法得到rj=r(j+1)q(j+1)+r(j+2),且0<r(j+2)<r(j+1),j=0, ...

  8. 欧几里得 推 扩展欧几里得

    前言 本文讨论如何求下面方程的解(a,b已知): a x + b y = 1 ( x , y ∈ Z ) ax+by=1(x,y \in Z) ax+by=1(x,y∈Z) 首先,方程有没有可能无解? ...

  9. 欧几里得、扩展欧几里得和中国剩余定理

    欧几里得算法.扩展欧几里得算法和中国剩余定理 欧几里得算法 求两个数a, b的最大公约数 g c d ( a , b ) gcd(a, b) gcd(a,b) 根据 g c d ( a , b ) = ...

最新文章

  1. 单片机外包公司可以去吗?学好单片机能接私活吗?
  2. 揭秘:一个月不摸鱼能写多少代码?
  3. 送书拉!给开发者们的几本书籍 |福利
  4. Java学习总结(二十)——JSON解析:官方解析,GSON解析,FastJSON解析,
  5. php无限极菜单,无限极菜单的实现
  6. Java之杨辉三角的实现
  7. 在 React 工程中利用 Mota 编写面向对象的业务模型
  8. 日期的前端验证 jquery
  9. java多线程之计算数量
  10. 波动速读入门训练(含黄卡、曼陀螺使用方法)提供卡片
  11. springboot证书管理系统的设计与实现毕业设计源码162317
  12. 【无锡学院/南信大滨江学院】IOS快捷指令登陆校园网——Iphone12实测
  13. 程序员对老板说:老子,明天不上班!结果...
  14. mysql error 1677_MySQL slave error 1677
  15. 网页AB Testing的七个原则(半成品)
  16. python多项式拟合:np.polyfit 和 np.polyld
  17. Enter实现Tab键的功能
  18. android中的长按复制
  19. el-cascader 级联选器中实现任意级别都可选,且前两级别为必选
  20. 20款优秀的移动产品原型和线框图设计工具

热门文章

  1. 中国最神秘的一所大学,它只存在过8年,却成了永远的第一
  2. 春节特惠活动┃不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?...
  3. 如果生活中没有数学,那么。。。
  4. 你感兴趣的大学专业真相 | 16万人参与调查,看完80%都哭了
  5. ordersta在php中是什么意思,[求助]ststa中的几个问题
  6. nginx php oracle,第8天 ORACLE安装及NGINX整合PHP环境
  7. python关联分析sklearn_Python3利用pandas,sklearn进行关联度分析以及预测的demo
  8. twitter mysql_twitter-mysql改进点
  9. js获取int类型长度_js代码比较大小前需要把string转换int
  10. 初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!