扩展欧几里得算法:

1.扩展欧几里得算法可以求逆元

2.扩展欧几里得算法可以求类似 ax+by=m, 的所有整数解,当m%gcd(a,b)==0 则ax+by=m有无线多个解,否则无解

扩展欧几里得的基础式 ax+by=gcd(a,b)  下面会用到这个式子  

下面我会给出这个基础式的模板

扩展欧几里得算法求逆元:

刚开始值知道这个算法可以求解逆元,

逆元的定义:ax1(mod b) (注意gcd(a,b)==1的时候才能保证a的逆元是x)ax%b=1ax-by=1(是不是和上面的基础式差不多)就是一样的。用模板回溯找到x不就是a 的逆元了吗?

现在给出模板吧  这个模板只能求形如ax+by=gcd(a,b)的式子

相关的解释会在代码中解释;

code:

ll exgcd(ll a,ll b,ll &x,ll &y){if(b==0){//递归到终点 ax+by=gcd(a,b)=a 此时a就是 最大公约数 x=1;//把x=1 ,y=0带入发现满足 y=0;return a;}ll r=exgcd(b,a%b,x,y);//回溯 (一般都是在递归的后面)回溯是因为要求原方程ax+by=gcd(a,b)的解 ll temp=x;//这个证明会在下面给出解释 x= y; y=temp-(a/b)*y; return r;
} 

这个是上面回溯的解释:

上层的式子 ax1+by1=gcd(a,b);
下层的式子 bx2+a%by2=gcd(b,a%b);
我们要求的是上层的x y
gcd(a,b)=gcd(b,a%b);
所以
ax1+by1=bx2+a%by2
ax1+by1=bx2+(a-(a/b)*b)y2
因此
ax1=ay2
by1=b(x2-(a/b)y2)

出了exgcd求逆元还有 费马小定理 ,和递推求逆元

请大家看这个博客(非常详细):

https://blog.csdn.net/qq_44797733/article/details/103037510?

扩展欧几里得求解ax+by=m的式子(m%gcd(a,b)==0)

这个式子有解的前提:m%gcd(a,b)==0  ;

然后就是这个方程如果没有对x和y有范围上的要求的话是有无线的解的

我们通过上面的模板可以求解出 ax+by=gcd(a,b)的一个特解 x y 然后等式俩边同时乘以m/gcd(a,b) 那么是不是就变成了ax+by=m的式子 ,此时的x和y也是乘过m/gcd(a,b)的,即此时x y是ax+by=m 的一个特解

现在的问题是怎么求其他的解:

我们让式子 ax+by=m 中   x+b/gcd(a,b)  y-a/gcd(a,b) 代入式子得 ax+a*b/gcd(a,b)+by-a*b/gcd(a,b)=m 这里是不是ax+by=m了 相当于这个式子加一个a,b 的最小公倍数 然后又减去一个最小公倍数 。

要是x,y没范围的话就可以求解的个数了。没错是这样的。。。。

接下来给大家分享一个相关的题目:Modified LCS

这里是题解:

https://blog.csdn.net/qq_44797733/article/details/107536436

强烈建议把 逆元的求解 和本篇文章一起看 这样可以更好的学习

扩展欧几里得的应用(超详细求逆元求解方程)相关推荐

  1. 牛客多校3 - Fraction Construction Problem(扩展欧几里得)

    题目链接:点击查看 题目大意:给出 a 和 b ,求解满足条件的 c,d,e,f ,使得: d < b f < b c,e 均为小于等于 4e12 的正整数 题目分析:分情况讨论一下,首先 ...

  2. 扩展欧几里得 解方程小记

    本来以前学习的时候就懵懵懂懂,长时间不用就完全不会了.. 首先对于扩展欧几里得,对于最一般的方程形式 ax+by=gcd(a,b),此方程一定有整数解,扩展欧几里便得能够求出其中的一组整数解x0,y0 ...

  3. 逆元的几种求法(扩展欧几里得,费马小定理或欧拉定理,特例,打表等)

    乘法逆元 对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得ax≡1(mod n) 一个数有逆元的充分必要条件是gcd(a,n)=1,此时逆元唯一存在 逆元的含义:模n意义下,1个数a如果 ...

  4. 浅谈扩展欧几里得定理(附裴蜀定理)

    关于扩展欧几里得定理 众所周知,扩展欧几里得定理是用来求形如(a,b,c皆为整数)这样的方程的一组解[注,仅是一组解]的定理 它的原理比较复杂,本人学了挺久才懂了一点,这里就不谈了,扩欧的核心是它的思 ...

  5. 欧拉定理相关及扩展欧几里得

    威尔逊定理.费马定理.欧拉函数.欧拉定理.逆元.exgcd 威尔逊定理: ( p − 1 ) ! ≡ − 1 ( m o d p ) (p-1)! \equiv -1 \pmod p (p−1)!≡− ...

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

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

  7. POJ 1061 青蛙的约会 (扩展欧几里得)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 97673   Accepted: 18409 Descripti ...

  8. 扩展欧几里得 POJ 1061

    感觉这道题目的数据好水啊...我的代码我都觉得姿势特别奇怪...竟然还过了... 好吧,原来不是姿势奇怪,而是逆元需要用的时候是余数也需要的时候,这里的余数是不需要的,所以就AC了 就说一下碰到的问题 ...

  9. 求逆元(线性求逆元)及其扩展欧几里得

    线性求逆元模板: int inv[maxn]; void initInverse(){inv[1] = 1;for(int i = 2; i <= maxn; i++)inv[i] = (p - ...

最新文章

  1. pyinstaller3.5 和 python 3.8 不兼容
  2. POJ 1944 - Fiber Communications
  3. 以太坊源码linux下如何编译,以太坊教程:搭建环境、编写编译一个智能合约
  4. [云炬创业基础笔记]第七章创业资源测试1
  5. 人机接口要学哪些计算机语言,智能人机接口
  6. java 上传远程图片,java上传图片到另一台服务器上,怎么解决
  7. java打卡-day3 变量和数据类型
  8. 成都这家AI语音芯片公司又融了数千万,能“偷袭”科大讯飞不?
  9. jQuery 根据数组对象中的属性值删除当前对象
  10. 一道面试题:用多线程求1000以内的素数有多少个?并给出消耗时间
  11. 机器学习落地的五个阶段
  12. java休闲游戏背景音乐推荐_休闲益智类游戏背景音乐推荐
  13. 不采用Matlab函数,自行设计基于双线性插值的图像放大程序
  14. python实现键盘自动输入_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...
  15. 【MVC 4】4.MVC 基本工具(Visual Studio 的单元测试、使用Moq)
  16. python的歌曲评论数据分析_用Python爬取陈奕迅歌曲10万条评论的新发现
  17. 神经网络自我认知模型
  18. App渠道打包的最佳攻略,一次解决打包难题
  19. 我的人生只适合黑夜,第一天
  20. 不用加减乘除符号的情况下实现加法运算(js代码)

热门文章

  1. 微信小程序中使用 npm 包
  2. oppo 手机计算机历史记录,我想找到OPPOa57计算机的全部历史记录可以吗
  3. c++ 第十天使用类
  4. 掌握这2个小技巧,让你轻松学会手机拍照计算数量
  5. Data-Copilot: 大语言模型做你最贴心省事的数据助手
  6. 两个或多个开关控制一盏灯的电器接线图
  7. 网络安全 彩虹表 彩虹表破解 使用john
  8. ncnn神经网络计算框架在香橙派OrangePi 3 LTS开发板中的使用介绍
  9. 6.8 The Primary Decomposition Theorem
  10. 水晶报表之图片(插入,显示)