【概念】

1.不定方程:未知数的个数多于方程个数,且未知数受到某些限制(如要求是整数)的方程。

2.同余方程

设函数 ,则称:是关于模 m 的同余方程

3.线性:方程的未知数次数是一次

4.线性同余方程

线性同余方程是最基本的同余方程,形如  的未知数是 x 的同余式,其中,a、b 是整数,且 

【与线性同余方程有关的定理】

1.定理1:对于二元一次方程  ,其等价为 ,该方程有整数解的充分条件是 ,若方程有整数解,则共有  个解。

2.定理2:若   为  的一组解,则该方程的任一解可表示为:

注意,上面两个通解公式只能选择其中一个,另一个再根据原方程推出。

3.定理3:若 ,则方程  在  上有唯一解。

【线性同余方程的解的求法】

1.使用扩展欧几里德算法求方程的一组解

根据定理1,对于方程  ,用扩展欧几里德算法求出一组 ,即令 ,然后两边同除  ,再乘以 c ,即得方程  ,因此可知方程的一组解 

2.实际应用

实际中,常常被要求去求最小的正整数的解,先通过扩展欧几里德算法求出方程的一组 ,再设  ,通过定理2来拓展方程的解,来调整x的范围,将  拓展为  ,从而使得所得到的 x 尽可能的小,通过式子  来约束结果一定是一个正数,最后所得到的 x 即是一个最小的正整数解。

【模版】

#include<iostream>
using namespace std;
int Extended_GCD(int a,int b,int &x,int &y)
{if(b==0){x=1;y=0;return a;}int temp;int gcd=Extended_GCD(b,a%b,y,x);y-=x*(a/b);return gcd;
}
int main()
{//形如 ax+by=cint a,b,c,x,y;cin>>a>>b>>c;int gcd=Extended_GCD(a,b,x,y);if(c%gcd!=0)cout<<"无整数解"<<endl;elsecout<<"该方程的一组整数解为:x="<<x*c/gcd<<",y="<<y*c/gcd<<endl;return 0;
}

【例题】

  • 青蛙的约会(POJ-1061)(扩展欧几里得):点击这里
    同题:青蛙的约会(洛谷-P1516):点击这里
  • The Balance(POJ-2142)(线性同余方程):点击这里
  • C Looooops(POJ-2115)(线性同余方程):点击这里

数论 —— 线性同余方程相关推荐

  1. 数论 —— 线性同余方程组与中国剩余定理

    [线性同余方程组] 由若干个线性同余方程构成的线性方程组. 例如: 其解法最早由我国<孙子算经>给出,因此解法称为"孙子定理",又叫"中国剩余定理" ...

  2. 数论学习之(一):一元线性同余方程和二元一次不等式

    看(ACM-ICPC程序设计系列)<数论及应用>第一章,讲到扩展欧几里德算法时,讲到POJ上的一个题目:POJ1061,看了很久也没看懂,可能是数学基础太差了吧! 还好的是我把不懂的地方跳 ...

  3. 【数论】同余(五):多元线性同余方程

    同余问题共7part,我的博客链接: 基本概念与性质 逆元:概念.求解方法与推导 线性同余方程 一元线性同余方程 一元线性同余方程组 多元线性同余方程 高次同余方程:BSGS算法(大小步算法.拔山盖世 ...

  4. 【数论】同余(四):一元线性同余方程组(两两相消、中国剩余定理)

    同余问题共7part,我的博客链接: 基本概念与性质 逆元:概念.求解方法与推导 线性同余方程 一元线性同余方程 一元线性同余方程组 多元线性同余方程 高次同余方程:BSGS算法(大小步算法.拔山盖世 ...

  5. 数论 - n元线性同余方程的解法

    note:n元线性同余方程因其编程的特殊性,一般在acm中用的很少,这里只是出于兴趣学了一下 n元线性同余方程的概念: 形如:(a1*x1+a2*x2+....+an*xn)%m=b%m       ...

  6. 线性同余方程和中国剩余定理学习笔记

    线性同余方程介绍 形如 a x ≡ c ( m o d b ) ax \equiv c \pmod b ax≡c(modb) 的方程被称为 线性同余方程(Congruence Equation). 求 ...

  7. 线性同余方程组-中国剩余定理or合并方程

    线性同余方程组 完整代码见https://github.com/YIWANFENG/Algorithm-github 即若干个线性同余方程的组合. 求解方式可以参考我们普通的方程组,先解式1,将式1的 ...

  8. 专题·扩展欧几里得定理【including 求解二元一次方程,线性同余方程

    初见安~这里是基础数论专题(3)~[详见数论专栏] p.s:本文章假设你已经掌握了欧几里得算法--辗转相除法求最大公约数(gcd) 一.二元一次方程 形如的含有两个未知数且最高次数为1的方程我们称之为 ...

  9. flare-on 7 break第三部分求解:一元线性同余方程

    思考的结论:其实这种国际性的逆向比赛,肯定会考一些数学的知识,这个考的是比较基础了,无奈自己没有这个基础. 话说还是flare 7的break这道题,到了最后,第三步验证,函数竟然来到了0x08053 ...

最新文章

  1. 1分钟10万字大法:量子波动速读、蒙眼翻书穿针,这是席卷15省的最新智商税...
  2. Android自定义View的实现方法,带你一步步深入了解View(四)
  3. Java黑皮书课后题第3章:*3.25(几何:交点)第一条直线上面的两个点是(x1,y1)(x2,y2),第二条(x3,y3)(x4,y4),通过Cramer规则求出线性方程组
  4. 1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解。
  5. 微软随.NET 4.5发布新REST API框架
  6. Rectangle Pro for Mac移动光标窗口捕捉工具
  7. 字节大幅压缩了22~23年的招聘
  8. 计算机保研面试-英语问题
  9. Linux write through 和write back
  10. 【web安全学习篇2】kali基本命令
  11. 2017蓝桥杯java本科模拟赛
  12. 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)章节一.doc...
  13. 用友u8凭证打印模板调整方法
  14. sc不是内部命令或外部命令
  15. freebsd linux双系统,多系统安装实践(Window /FreeBSD/Linux) (转)
  16. 焦虑没有什么,请别贩卖焦虑
  17. java字符转整形_java中整型与字符型互转
  18. 哈工程和哈工大被 MathWorks 禁止使用 MATLAB
  19. origin 图形复制格式
  20. Butler-Volmer 方程与Nernst 方程的关系

热门文章

  1. 鸿蒙霸榜 GitHub,从最初的 Plan B 到“取代 Android”?
  2. 秦始皇:请叫我数据治理专家
  3. FreeRTOS调度器挂起与解除
  4. Redis夺命连环11问
  5. Java代码的编译与反编译那些事儿
  6. 字节跳动也取消大小周了,996内卷要终结了?
  7. JimuReport积木报表——主子报表如何设计
  8. JMail 应用实践(一)--- 简介用Java程序发送email
  9. Linux常用指令总结二~~
  10. (八)JAVA springcloud ssm b2b2c多用户商城系统源码:配置中心服务化和高可用