1、《孙子算经》之"物不知数"题

今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何?

2、中国剩余定理

定义:

设 a,b,m 都是整数.  如果 m|(a-b),  则称 a 和 b 模 m 同余, 记为

m 称为这个同余式的模.

定理(中国剩余定理):

设 m1,m2,...,mr 是两两互素的正整数. 设 a1,a2,...,ar 是整数, 则同余方程组

模 M = m1m2...mr 有唯一解

3、C语言源代码

 #include<stdio.h>

 //////////////////////////////////////////
// 作者:落枫飘飘
// 时间:2016、04、21
// 博客:http://www.cnblogs.com/wuqianling/p/5415758.html
//////////////////////////////////////////
// 《孙子算经》之"物不知数"题:
// 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何?
//////////////////////////////////////////
// 根据题意我们有如下同余方程组:
// x=2%3 ---> x=3*k+2
// x=3%5
// x=2%7
////////////////////////////////////////// // 分析法求解
int analytical(float m1, float m2, float m3, float a1, float a2, float a3)
{
float x=0.0, k1=0.0, k2=0.0, k3=0.0; for(k1 = ; ; k1++)
{
x = m1*k1 + a1; // ---> x=3*k1+2
k2 = (x-a2) / m2; // ---> k2=(x-2)/3
if(k2 == (int)k2) // 判断k2是否为整数
{
k3 = (x-a3) / m3;
if(k3 == (int)k3) // 判断k3是否为整数
break;
}
}
return (int)x;
} // 中国剩余定理求解
int chineseRemainderTheorem(int m1, int m2, int m3, int a1, int a2, int a3)
{
int i, x;
int M, M1, M2, M3;
int y1, y2, y3; M = m1 * m2 * m3;
M1 = m2 * m3; // M1=M/m1=m2*m3
M2 = m1 * m3;
M3 = m1 * m2;
y1 = M1 % m1;
y2 = M2 % m2;
y3 = M3 % m3;
x = (a1*M1*y1 + a2*M2*y2 + a3*M3*y3) % M; return x;
} int main()
{
// x=2%3 即 x=a1%m1
// x=3%5 即 x=a2%m2
// x=2%7 即 x=a3%m3
int m1=, m2=, m3=;
int a1=, a2=, a3=;
printf("分析法:\nx=%d \n\n", analytical(m1,m2,m3,a1,a2,a3));
printf("中国剩余定理:\nx=%d \n\n", chineseRemainderTheorem(m1,m2,m3,a1,a2,a3));
return ;
}

《孙子算经》之"物不知数"题:中国剩余定理的更多相关文章

  1. 中国剩余定理CRT(孙子定理)

    中国剩余定理 给出以下的一元线性同余方程组: $\Large(s):\left\{\begin{aligned}x\equiv a_1\ (mod\ m_1)\\x\equiv a_2\ (mod\ ...

  2. 【GDKOI2017】 两个胖子萌萌哒 小学奥数题

    题目大意:给你一个$n\times m$的网格,你要在这个网格上画三角形. 三角形的顶点只能在网格的整点上,且至少有一条边平行于$x$或$y$轴,且三角形面积为整数.问你能画多少个不同的三角形. 两个 ...

  3. 一个hin秀的小学三年级奥数题 [hin秀]

    ~~~~~~不知为何总会被小学的题虐哭QAQ,真的秀啊,毒害广大小朋友~~~~~~ 一个hin秀的小学三年级奥数题    [hin秀] 题目: 给出一个无限大的棋盘  n×n  (n>0 , 是 ...

  4. Contest 高数题 樹的點分治 樹形DP

    高数题 HJA最近在刷高数题,他遇到了这样一道高数题.这道高数题里面有一棵N个点的树,树上每个点有点权,每条边有颜色.一条路径的权值是这条路径上所有点的点权和,一条合法的路径需要满足该路径上任意相邻的 ...

  5. 【xsy1116】数学题 奥数题

    真实奥数题 题目大意:给你正整数k$,r$.问你存在多少对$(x,y)$,满足$x<y$且$x^2+y^2=kz^2$,并将所有符合条件的数对输出. 数据范围:$r≤1e9$,$k={1,2,3 ...

  6. python基础===一道小学奥数题的解法

    今早在博客园和大家分享了一道昨晚微博中看到的小学奥数题,后来有朋友给出了答案.然后我尝试用python解答它. 原题是这样的: 数学题:好事好 + 要做好 = 要做好事,求 “好.事.做.要”的值分别 ...

  7. 【OI】蛇形填数题的深入探究

    题目:在 n×n 方阵里填入 1,2,...n×n, 要求蛇形填数.例如,n=4 时方阵为: 10  11  12  1 9    16  13  2 8    15  14  3 7     6  ...

  8. qdu-凑数题(01背包)

    Description 小Q手里有n(n<=1000) 个硬币,每枚硬币有一定的金额(200=>x>=1)他想知道,用这些硬币(每枚硬币只能用一次,但可能会有等面值的用两次) 能组成 ...

  9. CPC23-4-K. 喵喵的神数 (数论 Lucas定理)

    喵喵的神∙数 Time Limit: 1 Sec Memory Limit: 128 MB Description 喵喵对组合数比較感兴趣,而且对计算组合数很在行. 同一时候为了追求有后宫的素养的生活 ...

随机推荐

  1. php实现图片缩放功能类

    http://www.poluoluo.com/jzxy/201312/255447.html <?php /** * Images类是一个图片处理类 * @package applicatio ...

  2. BZOJ1367——[Baltic2004]sequence

    1.题目大意:给一个序列t,然后求一个序列z,使得$|z1-t1|+|z2-t2|+...+|zn-tn|$的值最小,我们只需要求出这个值就可以了,并且z序列是递增的 2.分析:这道题z序列是递增的, ...

  3. Apache 无法启动

    本人是做前端开发的,对后台程序不太熟悉,也就以前学过一点.net.但现在都忘记的差不多了.最近在公司,经理给了我一个管理工具dedecms,我刚开始看的时候完全不懂这是什么东西,之前都没听说过(本人见 ...

  4. PyCharm 5 破解注册方法

    方法: 调整时间到2038年. 申请30天试用 退出pycharm 时间调整回来即可. 或者: 注册时选择 License server ,填 http://idea.lanyus.com ,然后点击 ...

  5. time()函数,dirname(__FILE__) 的使用总结

    time()函数将返回从1970-1-1 0:0:0到当前时间的秒数.(整型) dirname(__FILE__) php中定义了一个很有用的常数,即 __file__ 这个内定常数是当前php程序的 ...

  6. Android 手势水平监听判断

    package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...

  7. 如何解决phpcms后台验证码不显示的问题

    方法一: 主要在于是否开启gd库 查看办法 找到php.ini文件 搜索extension=php_gd2.dll这段代码(windows) 然后把前面的;符号去掉即可. centOS6.5中可能需要 ...

  8. JustMock Lite (Free Mocking Framework For .net)

    通过 Nuget 安装 2.   官网下载(官网不行点这里) 3.   帮助文档 商业版和免费版区别概览 MockingContainer 测试类准备:一般来说也是业务类 public class C ...

  9. ios swift 2 新的OptionSetType使用方法

    http://www.rockhoppertech.com/blog/swift-2-optionsettype/?utm_source=tuicool 主要使用方法如下 components([NS ...

  10. STL_fill()用法

    以前很多次会给某个区间赋值,今天才知道有个函数可以满足这个功能. void fill (ForwardIterator first, ForwardIterator last, const T& ...