当前位置: 首页 > news >正文

中国剩余定理和扩展中国剩余定理(模板)

给你一元线性同余方程组,如下:

其中,当 n_{1} , n_{2} , ... , n_{k} 两两互质的话就是中国剩余定理 , 不互质的话就是扩展中国剩余定理。

给出中国剩余定理的计算过程和扩展中国剩余定理的推理过程:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int m;
int a[15],b[15];
int exgcd(int a,int b,int &x,int &y){if(b==0){x=1,y=0;return a;}int gcd=exgcd(b,a%b,y,x);y-=(a/b)*x;return gcd;
}
int CRT(){int p=1,ans=0;for(int i=1;i<=m;i++) p*=a[i];for(int i=1;i<=m;i++){int c=p/a[i],x=0,y=0;exgcd(c,a[i],x,y);ans=(ans+b[i]*c*x%p)%p;}return (ans%p+p)%p;
}
signed main()
{IOScin >> m;for(int i=1;i<=m;i++) cin >> a[i];// b[i]是模数 for(int i=1;i<=m;i++) cin >> b[i];// a[i]是余数cout << CRT() << endl;return 0;
}

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int m,f=0;
int a[15],b[15];
int exgcd(int a,int b,int &x,int &y){if(b==0){x=1,y=0;return a;}int gcd=exgcd(b,a%b,y,x);y-=(a/b)*x;return gcd;
}
int CRT(){int p=a[1],r=b[1],x=0,y=0;for(int i=2;i<=m;i++){int c=b[i]-r,gcd=exgcd(p,a[i],x,y);if(c%gcd){f=1;return 0;}int tmp=c/gcd*x,t=a[i]/gcd;tmp=(tmp%t+t)%t;r+=p*tmp;p=a[i]/gcd*p;}return r;
}
signed main()
{IOScin >> m;int num=1;for(int i=1;i<=m;i++) cin >> a[i];//模数 for(int i=1;i<=m;i++) cin >> b[i];//余数if(f) cout << -1 << endl;// 无解 else cout << CRT() << endl;// 有解 return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深度学习(七)-计算机视觉基础
  • Redis从简单使用到底层原理与分布式缓存
  • 【C++ Primer Plus习题】10.7
  • react中关于token的两个场景
  • 从零到精通:用C++ STL string优化代码
  • Biome-BGC生态系统模型与Python融合技术实践应用
  • 记一次 OOM内存溢出案例
  • 设计模式-行为型模式-模板方法模式
  • 预训练语言模型的前世今生 - 从Word Embedding到BERT
  • 深入掌握Linux磁盘管理,从入门到精通的完整指南
  • 安装node版本管理工具(nvm)、利用nvm安装node
  • html+css+js网页设计 故宫7个页面 ui还原度100%
  • 解决App推广痛点:一键获取下载数据的秘诀
  • Vue(七) TodoList案例1.0
  • 新的Ubuntu服务器如何启用root账号和配置静态ip以及开启ssh服务
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • MySQL几个简单SQL的优化
  • Python学习之路13-记分
  • Redis学习笔记 - pipline(流水线、管道)
  • 笨办法学C 练习34:动态数组
  • 闭包--闭包之tab栏切换(四)
  • 不上全站https的网站你们就等着被恶心死吧
  • 从tcpdump抓包看TCP/IP协议
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 关于字符编码你应该知道的事情
  • 嵌入式文件系统
  • 三分钟教你同步 Visual Studio Code 设置
  • 山寨一个 Promise
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 系统认识JavaScript正则表达式
  • 自动记录MySQL慢查询快照脚本
  • 阿里云ACE认证之理解CDN技术
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ![CDATA[ ]] 是什么东东
  • ###STL(标准模板库)
  • #数据结构 笔记三
  • $(function(){})与(function($){....})(jQuery)的区别
  • (BFS)hdoj2377-Bus Pass
  • (C++20) consteval立即函数
  • (day6) 319. 灯泡开关
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (九十四)函数和二维数组
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器