推论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) (再结合 程序理解)相关推荐

  1. 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 ...

  2. 【原创】更相减损术 stein算法 欧几里得算法 拓展欧几里得算法 扩展欧几里得算法 逆元的计算与筛法 解模线性方程

    欧几里得 说在前面 数论学复习 Part 6. 然后再来一章CRT和组合数,就飞往概率,以此为跳板去向DP. 计划很美啊你. P.S. 这么说来拉格朗日插值可以说是数论学复习的Part 0了啊. 有一 ...

  3. Java实现算法导论中求解模线性方程解(基于最大公约数欧几里得扩展算法)

    基于最大公约数欧几里得扩展算法求解算法导论中模线性方程解.具体要结合算法导论中的有关数论算法章节理解,具体代码如下: package cn.ansj;/*假设方程ax=b(mod n)有解,且x0是方 ...

  4. matlab二次同余方程,解同余式ax ≡ c(mod m)

    将式子变形为 ax-c=my 可以看出原式有解当且仅当线性方程ax-my=c有解 设g = gcd(a, m) 则所有形如ax-my的数都是g的倍数 因此如果g不整除c则原方程无解. 下面假设g整除c ...

  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. 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 ...

  7. 模线性方程(中国剩余定理+扩展中国剩余定理)

    已知一系列除数和模数,求最小的满足条件的数 我们先考虑一般的情况,即模数不互质.(扩展中国剩余定理) 我们考虑两个方程的情况 x%M=R x=k1∗M+Rx=k1 * M+Rx=k1∗M+R x%m= ...

  8. 我的世界java版如何装mod_Java版 Mod(模组)API下载 | Mod安装教程 [1.13.2-1.2.5]

    您尚未登录,立即登录享受更好的浏览体验! 您需要 登录 才可以下载或查看,没有帐号?注册(register) x 本帖最后由 1094822247 于 2019-4-15 19:39 编辑 注意事项: ...

  9. 同余方程 ax≡1(mod b) POJ 1061 青蛙的约会

    题目:求 ax%b=c ax\%b=c最小正整数x解,题目中的 c c=1. 先感谢两位大犇ngncmh和笑巧. 对于一般的问题,我们通常有两种做法: 1)1) Baby Step Giant Ste ...

最新文章

  1. 灵活越障、花样空翻,腾讯轮腿式机器人亮相机器人顶会 ICRA
  2. 【2020】清华大学《高级机器学习》课件和专家特邀报告(附pdf下载)
  3. iOS编程(双语版) - 视图 - 基本概念
  4. [linux] Linux日志设置(转自抚琴煮酒)
  5. Slackware硬盘安装方法
  6. MOBA项目问题记录
  7. First use cursor and initially understand it
  8. 操作系统机制学习总结
  9. MySQL 处理海量数据时的一些优化查询速度方法
  10. 算法 - 贪心算法(集合覆盖问题求解)
  11. html浮动跟随鼠标,jQuery 图片跟随鼠标浮动
  12. Android开发笔记(一百五十九)Android7.0的分屏模式
  13. Citrix 整体架构 端口列表 Tcp Port
  14. Mysql 电商常用的时间操作(当天,昨天,7天,30天,半年,全年,季度等等)...
  15. Quartus II 13.1与Modelsim SE的安装
  16. 闪存flash基础原理
  17. ubuntu安装安卓开发环境(android studio)
  18. 扩展点系列之ApplicationContextAwareProcessor普通类获取Spring Bean - 第433篇
  19. Python爬虫-selenium爬取网易云歌单
  20. 解密回声消除技术--转

热门文章

  1. mac 查看端口_交换机端口对应的mac地址与IP地址
  2. 【算法分析】多个对比算法的统计检验方法
  3. 【转贴】龙芯生态产品和解决方案巡展(第二篇)——笔记本电脑
  4. 使用 Lightly 在线格式化 HTML
  5. SPS PDSCH的HARQ反馈
  6. 中国企业去除oracle,去IOE浪潮之下,Oracle再次大规模裁员,企业全面上云成大趋势...
  7. NAND FLASH 内存详解与读写寻址方式
  8. 手码万字-带你全面了解存储基础知识
  9. ELK学习笔记之F5 DNS可视化让DNS运维更安全更高效-F5 ELK可视化方案系列(3)
  10. java线程详细介绍