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. APPCAN IDE中安装emmet插件

    1.首先打开APPCAN IDE 2.帮助(help)-安装新软件(install New sofaWare) 3.打开Install窗口,点击 Add,在Add Repository窗口中,Name ...

  2. .Net的要知道的一些事

    1.什么是.NET?什么是CLI?什么是CLR?IL是什么?JIT是什么,它是如何工作的?GC是什么,简述一下GC的工作方式? .Net是微软推出的框架 CLI是公共语言接口(规范) CLR是公共语言 ...

  3. 用 FragmentManager 替换时使用 GoogleMaps 崩溃 app

    我要用下面的代码来加载的片段的项已被选定在 NavigationDrawer,然而 MapFragment 包含它里面的谷歌地图片段和它崩溃后试图打开它第二次. 这里是我使用的代码: @Overrid ...

  4. 客户端安全-xss-2解决方案

    1.需求 提供xss解决方案 2.方式 对需要显示在html中的用户代码进行编码 3.处理方案 1.用户的数据到后端前用下面的编码层代码进行编码. function htmlEncodeCharact ...

  5. Android 数据存储之 SQLite数据库存储

    ----------------------------------------SQLite数据库---------------------------------------------- SQLi ...

  6. html之左边不动右边内容自动修剪并出现滚动轮查看剩余内容

    <html lang="en"> <head> <meta charset="UTF-8"> <title>Ti ...

  7. 使用jar命令打war包

    1.打开cmd进入web项目发布文件夹 2.,输入jar -cvf qxpt.war * (*表示当前目录下所有子目录) 3,回车等待执行完成就可以了 4.如果web项目发布文件夹有多个文件夹,而打w ...

  8. django 实战 - eLeave Form

    需求: 实现请假单的电子审批 1. 支持国际化 2. 支持模型级别的访问记录 here we go: 这里会写一系列的文章,来记录我实战的过程,由于接触django没多久,难免有疏漏之处,望拍砖不要太 ...

  9. 【GoLang】golang中可以直接返回slice吗?YES

    结论: 可以,slice本质是结构体,返回slice时返回的是结构体的值,结构体的指针.len.cap等信息也全部返回了. 如下: type slice struct { start *uintptr ...

  10. C++拷贝构造函数(深拷贝,浅拷贝)

    对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面看一个类对象拷贝的简单例子. #i ...