想看详细证明的:https://www.cnblogs.com/hadilo/p/5914302.html

扩展欧几里得算法,简称 exgcd,一般用来求解不定方程,求解线性同余方程,求解模的逆元等,本篇只给出解不定方程ax+by=c;

定理1: 如果a和b都是整数,则有整数x 和整数y 使得 ax+by=gcd(a,b);(Bezout定理)

定理2:整数a,b互素当且仅当存在整数x,y使得ax+by=1;

定理3:a,b,c都是整数。
           
如果c不是gcd(a,b)的倍数,则不定方程ax+by=c 没有整数解。
           
如果c是gcd(a,b)的倍数,则有无穷多的解。
           
如果(x0,y0)是ax+by=c的一个解,则ax+by=c的所有整数解是 :
           
x= x0+k*(b / gcd(a,b) )
           
y= y0-k*(a / gcd(a,b) );    其中k是整数。

给出模板:

#include<bits/stdc++.h>
using namespace std;
int exgcd(int a,int b,int &x,int &y){if(b==0) {x=1,y=0;return a;}int t=exgcd(b,a%b,x,y); //得到最大公约数t int x0=x,y0=y;x=y0;y=x0-(a/b)*y0;//得到通解 return t;
}int main(){int a,x,y,b,c;cin>>a>>b>>c;//a,b,c; int t=exgcd(a,b,x,y);if(c%t!=0) cout<<"无解";else{printf("通解为:x= %d ,y= %d\n",x,y);cout<<"给出10组特解:"<<endl;for(int i=-5;i<=5;i++){printf("(x=%d,y=%d)  ",x+i*(b/t),y-i*(a/t));if(i==0) cout<<endl;} }return 0;
}

例题 SGU 106

求解不定方程 (扩展欧几里得算法)相关推荐

  1. C++ 二元一次不定方程巧妙求解——运用扩展欧几里得算法

    前言 在关于数论的学习中,求解二元一次不定方程是很重要的,在学习求解二元一次不定方程之前,要先了解欧几里得算法和扩展欧几里得算法. 关于数论的学习 欧几里得算法 欧几里得算法就是辗转相除法,欧几里得算 ...

  2. 如何利用扩展欧几里得算法求解不定方程_客户端不用的算法系列:从头条笔试题认识扩展欧几里得算法...

    难度较高,阅读时间大概 28 分钟 这是数论的第二篇,在<素数筛法>中,我们重温了素数这个数学定义,并且给出了区别于教科书上更高效的 Eratosthenes 筛法和欧拉线性筛.这篇文会从 ...

  3. 扩展欧几里得算法 求解 丢番图方程

    丢番图方程: 有一个或者几个变量的整系数方程,它们的求解仅仅在整数范围内进行. a * x + b * y = c  ( 其中所有数均为整数, 已知 x, y, c )        例如:鸡兔同笼问 ...

  4. Python在GF(2⁸)有限域上求解多项式的乘法逆元——基于扩展欧几里得算法

    文章目录 一.前言 二.数学基础 1.GF(2⁸)有限域内的多项式 2.不可约多项式 3.多项式模运算 3.乘法逆元 三.算法步骤 1.扩展欧几里得算法 2.多项式除法 3.多项式乘法 四.代码实现 ...

  5. 扩展欧几里得算法、ax+by=c求解、ax≡c(mod m)、逆元求解、(b/a)%m计算c++代码

    参考 <算法笔记>(胡凡) 扩展欧几里得算法 求解ax+ by = gcd(a, b) int exGcd(int a, int b, int &x, int &y) {i ...

  6. 欧几里得算法扩展欧几里得算法

    欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b). ...

  7. POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)

    POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法) 手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn ...

  8. [BZOJ1477] 青蛙的约会|扩展欧几里得算法

    1477: 青蛙的约会 Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 306  Solved: 192 [Submit][Status][Discuss ...

  9. c语言中欧几里得模乘法逆元,扩展欧几里得算法同余方程模m乘法逆元详解

    欧几里德算法: 复习:求最大公约数算法(欧几里得算法.也叫辗转相除法).欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd ...

  10. 『扩展欧几里得算法 Extended Euclid』

    Euclid算法(gcd) 在学习扩展欧几里得算法之前,当然要复习一下欧几里得算法啦. 众所周知,欧几里得算法又称gcd算法,辗转相除法,可以在\(O(log_2b)\)时间内求解\((a,b)\)( ...

最新文章

  1. DNS同时占用UDP和TCP端口53——传输数据超过512时候用tcp,DNS服务器可以配置仅支持UDP查询包...
  2. C#中计时器Stopwatch的使用
  3. 基于SIP协议的视频通讯
  4. AVS 分像素运动估计优化算法
  5. 组装电脑多少钱一台_客户花9000元组装一台电脑,奸商赚5000块,利润真吓人
  6. 干货 | 机器学习在web攻击检测中的应用实践
  7. Android 教你打造炫酷的ViewPagerIndicator
  8. 功能对等四个原则_功能对等四原则
  9. 关键词文章生成器-智能关键词文章生成器
  10. 天津仁爱学院2021级高职升本科新生报到须知
  11. 文件上传数据库,并下载(包含删除,根据条线查询等功能)
  12. 哈尔滨工业大学 计算机系教授,哈尔滨工业大学计算机科学与技术硕士导师---杨孝宗...
  13. Linkis和DSS本地和远程调试文档
  14. 【系统分析师之路】第六章 多媒体基础知识
  15. 毕业参加工作了,记住一句话,攒钱绝对靠谱
  16. 1、IOS开发--iPad之仿制QQ空间(登录界面搭建+登录逻辑实现)
  17. Android-圆形头像
  18. html5指标源码,一个超准的技术指标源码!
  19. 第二届深圳互联网高层峰会
  20. 浅谈技术难度与公司收益

热门文章

  1. jQuery按住滑块拖动验证插件
  2. 质性数据分析软件NVivo的许可
  3. 单系统 台电x80pro_台电X80HD安装Win8单系统教程
  4. HTML点击头像修改页面,头像修改页.html
  5. 大数据时代,我竟然在用Excel和SPSS做数据分析,真香!
  6. matlab 神经识别取整数_Matlab取整
  7. 再也不用花一天时间做ppt了
  8. 【数据分析能力是指什么?】
  9. android反编译修改教程,Android逆向反编译代码注入
  10. 计算机上64位数和32位数,一不小心就蓝屏?安装win10系统和软件,你选32位还是64位?...