模线性方程ax≡b(mod n) (再结合 程序理解)
推论1: 方程ax≡b(mod n)对于未知量x有解,当且仅当gcd(a,n) | b (b能被gcd(a,b)整除)。
即:若gcd(a,n)|b ==> 有一个解x,使得ax≡b(mod n).
推论2:方程ax≡b(mod n)或者对模n有d个不同的解(有解当且仅当d | b),其中d=gcd(a,n),或者无解。
定理1:设d=gcd(a,n),假定对整数x'和y'满足d=ax'+by'(比如用扩展Euclid算法求出的一组解)。如果d | b,则该方程对模n有d个不同的解,方程ax≡b(mod n)有一个解x0满足x0=x'*(b/d) mod n 通解为xi = x0 + i*(n / d)(d = 0, 1, 2, ..., d - 1)。特别的设e=x0+n,方程ax≡b(mod n)的最小整数解x1=e mod (n/d),最大整数解x2=x1+(d-1)*(n/d)。
定理2:假设方程ax=b(mod n)有解,且x0是方程的任意一个解,则该方程对模n恰有d个不同的解(d=gcd(a,n)),分别为:xi=x0+i*(n/d) mod n 。
类似地: 可以求ax + by = c的整数解(x, y)。==> ax ≡ c(mod b), d = gcd(a, b) | c 时有解。有一个解x0 = x’* (c / d) mod b, y0 = (-a * x0 - c) / b; 通解xi = x0 + i * (b / d), yi = y0 - i * (a / d) (i = 0, 1, 2, ..., d - 1)。
附:扩展欧几里得代码
int exgcd(int a, int b, int& x, int& y)
{
if(b == 0)
{
x = 1;
y = 0;
return a;
}
int r = exgcd(b, a%b, x, y);
int t = x;
x = y;
y = t - a/b* y;
return r;
}
模线性方程ax≡b(mod n) (再结合 程序理解)相关推荐
- POJ 2115 模线性方程 ax=b(mod n)
/* (x*c+a)%(2^k)==b →(x*c)%(2^k)==b-a 满足定理: 推论1:方程ax=b(mod n)对于未知量x有解,当且仅当gcd(a,n) | b.推论2:方程ax=b(mo ...
- 【原创】更相减损术 stein算法 欧几里得算法 拓展欧几里得算法 扩展欧几里得算法 逆元的计算与筛法 解模线性方程
欧几里得 说在前面 数论学复习 Part 6. 然后再来一章CRT和组合数,就飞往概率,以此为跳板去向DP. 计划很美啊你. P.S. 这么说来拉格朗日插值可以说是数论学复习的Part 0了啊. 有一 ...
- Java实现算法导论中求解模线性方程解(基于最大公约数欧几里得扩展算法)
基于最大公约数欧几里得扩展算法求解算法导论中模线性方程解.具体要结合算法导论中的有关数论算法章节理解,具体代码如下: package cn.ansj;/*假设方程ax=b(mod n)有解,且x0是方 ...
- matlab二次同余方程,解同余式ax ≡ c(mod m)
将式子变形为 ax-c=my 可以看出原式有解当且仅当线性方程ax-my=c有解 设g = gcd(a, m) 则所有形如ax-my的数都是g的倍数 因此如果g不整除c则原方程无解. 下面假设g整除c ...
- 扩展欧几里得算法、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 ...
- sgu 106 The equation ★★(线性方程ax+by=c限制区间的解)
题目大意:给定a,b,c,x1,x2,y1,y2,求满足a*x+b*y+c = 0的解x满足x1<=x<=x2,y满足y1<=y<=y2.求满足条件的解的个数. 题目链接:ht ...
- 模线性方程(中国剩余定理+扩展中国剩余定理)
已知一系列除数和模数,求最小的满足条件的数 我们先考虑一般的情况,即模数不互质.(扩展中国剩余定理) 我们考虑两个方程的情况 x%M=R x=k1∗M+Rx=k1 * M+Rx=k1∗M+R x%m= ...
- 我的世界java版如何装mod_Java版 Mod(模组)API下载 | Mod安装教程 [1.13.2-1.2.5]
您尚未登录,立即登录享受更好的浏览体验! 您需要 登录 才可以下载或查看,没有帐号?注册(register) x 本帖最后由 1094822247 于 2019-4-15 19:39 编辑 注意事项: ...
- 同余方程 ax≡1(mod b) POJ 1061 青蛙的约会
题目:求 ax%b=c ax\%b=c最小正整数x解,题目中的 c c=1. 先感谢两位大犇ngncmh和笑巧. 对于一般的问题,我们通常有两种做法: 1)1) Baby Step Giant Ste ...
最新文章
- 灵活越障、花样空翻,腾讯轮腿式机器人亮相机器人顶会 ICRA
- 【2020】清华大学《高级机器学习》课件和专家特邀报告(附pdf下载)
- iOS编程(双语版) - 视图 - 基本概念
- [linux] Linux日志设置(转自抚琴煮酒)
- Slackware硬盘安装方法
- MOBA项目问题记录
- First use cursor and initially understand it
- 操作系统机制学习总结
- MySQL 处理海量数据时的一些优化查询速度方法
- 算法 - 贪心算法(集合覆盖问题求解)
- html浮动跟随鼠标,jQuery 图片跟随鼠标浮动
- Android开发笔记(一百五十九)Android7.0的分屏模式
- Citrix 整体架构 端口列表 Tcp Port
- Mysql 电商常用的时间操作(当天,昨天,7天,30天,半年,全年,季度等等)...
- Quartus II 13.1与Modelsim SE的安装
- 闪存flash基础原理
- ubuntu安装安卓开发环境(android studio)
- 扩展点系列之ApplicationContextAwareProcessor普通类获取Spring Bean - 第433篇
- Python爬虫-selenium爬取网易云歌单
- 解密回声消除技术--转
热门文章
- mac 查看端口_交换机端口对应的mac地址与IP地址
- 【算法分析】多个对比算法的统计检验方法
- 【转贴】龙芯生态产品和解决方案巡展(第二篇)——笔记本电脑
- 使用 Lightly 在线格式化 HTML
- SPS PDSCH的HARQ反馈
- 中国企业去除oracle,去IOE浪潮之下,Oracle再次大规模裁员,企业全面上云成大趋势...
- NAND FLASH 内存详解与读写寻址方式
- 手码万字-带你全面了解存储基础知识
- ELK学习笔记之F5 DNS可视化让DNS运维更安全更高效-F5 ELK可视化方案系列(3)
- java线程详细介绍