中国剩余定理:

《孙子算经》中有“物不知数”问题:“今有物不知其数,三三数之余二 ,五五数之余三 ,七七数之余二,问物几何?”答为“23”。

--------这个就是传说中的“中国剩余定理”。 其实题目的意思就是,n % 3 = 2, n % 5 = 3, n % 7 = 2; 问n是多少?

那么他是怎么解决的呢?

看下面:

题目中涉及 3, 5,7三个互质的数、

令:5 * 7 * a % 3 = 1;  --------------> a = 2; 即5 * 7 * 2 = 70;

3 * 7 * b % 5 = 1;  --------------> b = 1; 即3 * 7 * 1 = 21;

3 * 5 * c % 7 = 1;  --------------> c  = 1; 即3 * 5 * 1 = 15;

为什么要使余数为1:是为了要求余数2的话,只要乘以2就可以,要求余数为3的话,只要乘以3就可以!

( 因为题目想要n % 3 =2, n % 5 =3, n % 7 =2; )

那么:要使得n % 3 = 2,那么( 5 * 7 * 2 )*2  % 3 = 2;( 因为5 * 7 * 2 % 3 = 1 )

同理: 要使得n % 5 = 3,那么( 3 * 7 * 1 )*3  % 5 = 3;( 因为3 * 7 * 1 % 5 = 1 )

同理:要使得n % 7 = 2,那么( 3 * 5 * 1 )* 2  % 7 = 2;( 因为3 * 5 * 1 % 7 = 1 )

那么现在将( 5 * 7 * 2 )* 2和( 3 * 7 * 1 )* 3和( 3 * 5 * 1 )* 2相加会怎么样呢?我们知道

( 5 * 7 * 2 )* 2可以被5和7整除,但是%3等于2

( 3 * 7 * 1 )* 3可以被3和7整除,但是%5等于3

( 3 * 5 * 1 )* 2可以被3和5整除,但是%7等于2

那么即使相加后,%3, 5, 7的情况也还是一样的!

那么就得到一个我们暂时需要的数( 5 * 7 * 2 )* 2 +( 3 * 7 * 1 )* 3 +( 3 * 5 * 1 )* 2 = 233

但不是最小的!所有我们还要 233 % ( 3 * 5 * 7 ) == 23  得解!

这道题目就是利用中国剩余定理解决的:x%23 = p, x % 28 = e, x % 33 = i;

那么令:28*33*a % 23 = 1; ---------> a = 6,  28*33*6 = 5544

23*33*b % 28 = 1; ---------> b = 19, 23*33*19 = 14421

23*28*c % 33 = 1; ---------> c = 2,    23*28*2 = 1288

那么 x = 5544*p + 14421*e + 1288*i,那么最后的结果是(x-d) % 21252,如果x-d < 0,还要+21252;

AC:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int mod = 21252;
int p,e,i,d;
int main()
{   //中国剩余定理/* 33 * 28 * a % 23 = 1,得a = 6; 33 * 28 * 6 = 5544; 23 * 33 * b % 28 = 1, 得b = 19;23 * 33 * 19 = 14421; 23 * 28 * c % 33 = 1, 得c = 2;  23 * 28 * 2 = 1288。 */int a = 5544, b = 14421, c = 1288;int cas = 1;while(cin>>p>>e>>i>>d){if(p == -1 && e == -1 && i == -1 && d == -1) break;int x = a*p + b*e + c*i;x = (x - d) % mod;while(x <= 0)x += mod;cout<<"Case "<<cas++<<": the next triple peak occurs in "<<x<<" days."<<endl;}return 0;
}

poj 1006(中国剩余定理)相关推荐

  1. 【中国剩余定理】POJ 1006 HDU 1370 Biorhythms

    题目链接: http://poj.org/problem?id=1006 http://acm.hdu.edu.cn/showproblem.php?pid=1370 题目大意: (X+d)%23=a ...

  2. POJ1006-Biorhythms【中国剩余定理】

    正题 题目链接:http://poj.org/problem?id=1006 题目大意 若干个p,e,i,dp,e,i,dp,e,i,d.已经知道 {(d+x)≡p(mod23)(d+x)≡e(mod ...

  3. Bailian2977 生理周期【枚举+中国剩余定理】

    2977:生理周期 总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰. ...

  4. ACM数论----中国剩余定理与拓展中国剩余定理

    一.问题引入: 在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?"这个问 ...

  5. 【中国剩余定理】终于弄懂剩余定理了

    [茅塞顿开--这么简单的东西我居然刚懂]//中国古代求解一次同余式组(见同余)的方法.是数论中一个重要定理.又称中国剩余定理. //中国剩余定理的结论: //令任意固定整数为M,当M/A余a,M/B余 ...

  6. 数论四大定理(欧拉定理、费马小定理、中国剩余定理、威尔逊定理)

    前置知识 同余 假设 a,ba,ba,b 都是整数,如果 nnn 是一个正整数,且存在整数 kkk 使得 a−b=k×na−b=k \times na−b=k×n,则称 a,ba,ba,b 模 nnn ...

  7. 中国剩余定理与扩展中国剩余定理

    中国剩余定理又名孙子定理 用来求解同余线性方程组 其中m1,m2,m3-两两互质,求x的最小整数解: 设M为m1,m2,m3-的公倍数. 根据上面的推导,为什么x的通解形式是累加呢? 根据上面推导,推 ...

  8. 中国剩余定理(详解)

    中国剩余定理 中国剩余定理可以描述为: 若某数x分别被d1..-.dn除得的余数为r1.r2.-.rn,则可表示为下式: x=R1r1+R2r2+-+Rnrn+RD 其中R1是d2.d3.-.dn的公 ...

  9. 中国剩余定理(孙子定理)的证明和c++求解

    <孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...

最新文章

  1. 人工智能和自然智能能否交汇?李飞飞对话斯坦福神经生物学教授Bill Newsome
  2. 整理了一个castle的文档,供大家学习使用
  3. 基数排序算法图解分析
  4. oracle linux 配置本地yum,oracle linux配置本地光盘yum源
  5. mysql自动dump脚本_MySQL--简单mysqldump脚本
  6. springMVC 与mybatis 整合 demo(maven 工程)
  7. opencv学习笔记01
  8. java 终止方法_Java中终止线程的三种方法
  9. 华为端到端项目管理流程_从项目流程管理解析华为项目管理
  10. 企企通SRM:时尚服装品牌企业建立优质供应链体系,只需要做到这几步
  11. Qt android 开发环境搭建
  12. 中国期货市场监控中心爬虫
  13. [EULAR文摘] 滑膜HIF-1a与类风湿关节炎的关节破坏
  14. UVa 12096 The SetStack Computer 【STL】【stack】
  15. 【谷歌浏览器】谷歌浏览器SameSite
  16. centos修正时区
  17. python进阶之路———文件处理
  18. Sendmail config error: mail loops back to me (MX problem?)
  19. 关于机房环境监控系统基础知识
  20. 37游戏叫板外国进口 用设计抢滩市场才是硬道理

热门文章

  1. PPT 下载 | 神策数据孙超赟:数据驱动,做可“视”化运营
  2. 神策数据荣膺 2017 企业创新典范、最佳青年榜样双殊荣
  3. 周五话分析 | 你的梦想是什么?做一个懂 Session 分析的人
  4. 一下科技完成5亿美元E轮融资,神策助力秒拍实现数据驱动
  5. ThreadPoolExecutor的execute源码分析
  6. 前端小白的 docker 配置nginx踩坑之旅
  7. 聊聊spring cloud gateway的SecureHeadersGatewayFilter
  8. import,export的支持[nodejs]
  9. Tomcat架构解析之3 Connector NIO
  10. 分享一下cookies操作(增、删、改、查)小经验