数论 —— 线性同余方程
【概念】
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)(线性同余方程):点击这里
数论 —— 线性同余方程相关推荐
- 数论 —— 线性同余方程组与中国剩余定理
[线性同余方程组] 由若干个线性同余方程构成的线性方程组. 例如: 其解法最早由我国<孙子算经>给出,因此解法称为"孙子定理",又叫"中国剩余定理" ...
- 数论学习之(一):一元线性同余方程和二元一次不等式
看(ACM-ICPC程序设计系列)<数论及应用>第一章,讲到扩展欧几里德算法时,讲到POJ上的一个题目:POJ1061,看了很久也没看懂,可能是数学基础太差了吧! 还好的是我把不懂的地方跳 ...
- 【数论】同余(五):多元线性同余方程
同余问题共7part,我的博客链接: 基本概念与性质 逆元:概念.求解方法与推导 线性同余方程 一元线性同余方程 一元线性同余方程组 多元线性同余方程 高次同余方程:BSGS算法(大小步算法.拔山盖世 ...
- 【数论】同余(四):一元线性同余方程组(两两相消、中国剩余定理)
同余问题共7part,我的博客链接: 基本概念与性质 逆元:概念.求解方法与推导 线性同余方程 一元线性同余方程 一元线性同余方程组 多元线性同余方程 高次同余方程:BSGS算法(大小步算法.拔山盖世 ...
- 数论 - n元线性同余方程的解法
note:n元线性同余方程因其编程的特殊性,一般在acm中用的很少,这里只是出于兴趣学了一下 n元线性同余方程的概念: 形如:(a1*x1+a2*x2+....+an*xn)%m=b%m ...
- 线性同余方程和中国剩余定理学习笔记
线性同余方程介绍 形如 a x ≡ c ( m o d b ) ax \equiv c \pmod b ax≡c(modb) 的方程被称为 线性同余方程(Congruence Equation). 求 ...
- 线性同余方程组-中国剩余定理or合并方程
线性同余方程组 完整代码见https://github.com/YIWANFENG/Algorithm-github 即若干个线性同余方程的组合. 求解方式可以参考我们普通的方程组,先解式1,将式1的 ...
- 专题·扩展欧几里得定理【including 求解二元一次方程,线性同余方程
初见安~这里是基础数论专题(3)~[详见数论专栏] p.s:本文章假设你已经掌握了欧几里得算法--辗转相除法求最大公约数(gcd) 一.二元一次方程 形如的含有两个未知数且最高次数为1的方程我们称之为 ...
- flare-on 7 break第三部分求解:一元线性同余方程
思考的结论:其实这种国际性的逆向比赛,肯定会考一些数学的知识,这个考的是比较基础了,无奈自己没有这个基础. 话说还是flare 7的break这道题,到了最后,第三步验证,函数竟然来到了0x08053 ...
最新文章
- 1分钟10万字大法:量子波动速读、蒙眼翻书穿针,这是席卷15省的最新智商税...
- Android自定义View的实现方法,带你一步步深入了解View(四)
- Java黑皮书课后题第3章:*3.25(几何:交点)第一条直线上面的两个点是(x1,y1)(x2,y2),第二条(x3,y3)(x4,y4),通过Cramer规则求出线性方程组
- 1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解。
- 微软随.NET 4.5发布新REST API框架
- Rectangle Pro for Mac移动光标窗口捕捉工具
- 字节大幅压缩了22~23年的招聘
- 计算机保研面试-英语问题
- Linux write through 和write back
- 【web安全学习篇2】kali基本命令
- 2017蓝桥杯java本科模拟赛
- 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)章节一.doc...
- 用友u8凭证打印模板调整方法
- sc不是内部命令或外部命令
- freebsd linux双系统,多系统安装实践(Window /FreeBSD/Linux) (转)
- 焦虑没有什么,请别贩卖焦虑
- java字符转整形_java中整型与字符型互转
- 哈工程和哈工大被 MathWorks 禁止使用 MATLAB
- origin 图形复制格式
- Butler-Volmer 方程与Nernst 方程的关系