#include<stdio.h>
#include <iostream>
using namespace std;
//扩展欧几里得算法
int exgcd(int a,int b,int &x,int &y)
{int d;if(b==0){x=1;y=0;return a;}d=exgcd(b,a%b,y,x);y-=a/b*x;return d;
}//中国剩余定理 ,r[]存放余数 ,prime[]存放两两互质的数
int Chinese_Remainder(int r[],int prime[],int len)
{int i,d,x,y,m,n=1,sum=0;//计算所以除数的积n,也是所以除数的最小公倍数for(i=0;i<len;i++)n*=prime[i];//计算符合所以条件的数for(i=0;i<len;i++){m=n/prime[i];//计算除去本身的所有除数的积md=exgcd(prime[i],m,x,y);//计算w[i]*x+m*y=gcd(w[i],m)的一个解y//累加整数解y的同并不断对n取余,其利用公式:(a+b)%c=(a%c+b%c)%csum=(sum+y*m*r[i])%n;}return (n+sum%n)%n;//满足所以方程的最小解
}
int main()
{int n,i;int prime[15],r[15];while (printf("请输入组数n:\n"),scanf("%d",&n)!=EOF){printf("请依次输入每组的除数和余数:\n");for (i=0;i<n;i++){scanf("%d%d",&prime[i],&r[i]);}//printf("%d\n",Chinese_Remainder(b,w,n));printf("符合条件的最小整数:%d\n\n",Chinese_Remainder(r,prime,n));}return 0;
}

核心代码:

int Chinese_Remainder(int r[],int prime[],int len)
{int i,d,x,y,m,n=1,sum=0;for(i=0;i<len;i++)n*=prime[i];for(i=0;i<len;i++){m=n/prime[i];d=exgcd(prime[i],m,x,y);sum=(sum+y*m*r[i])%n;}return (n+sum%n)%n;
}

中国剩余定理(模板+代码)相关推荐

  1. 中国剩余定理及其代码实现

    初等数论学习计划 中国剩余定理 部分源自于维基百科. 后续会继续补充修改. 初等数论四大定理之一. 1.1 历史背景与特殊情形口诀 中国剩余定理,又称中国余数定理,是数论中的一个关于一元线性同余方程组 ...

  2. 中国剩余定理 及 拓展中国剩余定理模板

    求解同余方程组: { x ≡ r 1 ( m o d m 1 ) x ≡ r 2 ( m o d m 2 ) ⋯ x ≡ r n ( m o d m n ) \left\{\begin{matrix} ...

  3. 中国剩余定理matlab非互质,中国剩余定理模板(互质版和非互质版)

    互质版: #include #include #include using namespace std; typedef __int64 int64; int64 a[15],b[15]; int64 ...

  4. 【luogu 3868】中国剩余定理模板题

    1.题目链接.考虑这样一个问题,存在一个同余方程组,其中模mi两两互质,求出满足这个方程组的最小的非负整数. 中国剩余定理就是干这件事的,其实也没什么神奇的,就是通过不断合并解得到最终答案. #inc ...

  5. 中国剩余定理 扩展中国剩余定理 模板

    中国剩余定理解线性同余线性方程 /*long long gcd(LL a,LL b) {return b==0?a:gcd(b,a%b); }*/ #include<bits/stdc++.h& ...

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

    证明:挂个大佬的博客:点击查看 挂上代码供以后白嫖: LL n,m[N],a[N];///模数为m,余数为a, X % m = aLL extend_gcd(LL a,LL b,LL &x,L ...

  7. 数论--中国剩余定理模板

    ACM常用模板合集 void exgcd(int a,int b,int &x,int &y) {if(b==0){ x=1; y=0; return;}exgcd(b,a%b,x,y ...

  8. 扩展中国剩余定理模板

    这就是神奇的非互质版CRT,同余方程组中各个模数可能不互质,如果再用以前互质版的做法就会出错(这个的原因我也没有深究,如果有兴趣的小伙伴懂的话欢迎在评论区里指点本蒟蒻). 对于模数不互质的情况,需要逐 ...

  9. poj 1006(中国剩余定理+模板题)

    题意:人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天.一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好.通常这三个周期的峰值不会是同一天.现在给出三个 ...

最新文章

  1. Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy
  2. 【Java基础】多线程
  3. android多线程下载图片
  4. python朴素贝叶斯_Python实现的朴素贝叶斯分类器示例
  5. cmd安装mysql_MySQL windows下cmd安装操作
  6. 浅析pc机上如何将vmlinuz-2.6.31-14-generic解压出vmlinux
  7. LINUX上安装SSH
  8. yii2 配置文件加载顺序, 以及调用自定义配置信息。
  9. 按键精灵--VS挤房器_Fly_v2.5版
  10. Qt读取海康威视NVR服务器视频
  11. 淘宝网视频下载的方法
  12. leetcode:买卖股票的最佳时机含手续费(python)
  13. 二维高斯曲面拟合法求取光斑中心
  14. python中超集、子集、并集、交集、差集等
  15. libevent 使用流程
  16. Day8—进程,线程,协程
  17. 多尺度量子谐振子优化算法(MQHOA)-matlab实现demo
  18. (javascript)vue项目打包后,写的覆盖element的样式无效了。这是什么原因?
  19. [精简]托福核心词汇53
  20. android跳转小程序 bad_param

热门文章

  1. php ignore special characters,PHP忽略第5个字符?(PHP ignore 5th character?)
  2. python迭代器举例_如何最简单、通俗地理解Python的迭代器?
  3. 照片识别出错_云投诉丨四川德阳市民文明手册咋满篇乱码?回应:电脑识别问题,已全部收回...
  4. 计算机版初中语文课文原文,《背影》课文原文
  5. python修复不了_如何修复Python代码?
  6. 如何参悟Java的三大框架
  7. 什么人适合学习Java编程?编程好学吗?
  8. bootstrap table格式化字符串_你要的PHP字符串处理函数都在这了!
  9. lisp获取图名_cadlisp获取当前视图坐标
  10. 量化交易系统 python btc_GitHub - crabboy/abu: 阿布量化交易系统(股票,期权,期货,比特币,机器学习) 基于python的开源量化交易,量化投资架构...