MAT-中国剩余定理
来源:互联网 发布:淘宝服装质检 编辑:程序博客网 时间:2024/05/01 04:54
中国剩余定理
中国剩余定理,又称孙子定理,数论中的重要定理,中国古代用于求解一次同余组的方法。问题的原文出自<孙子算经>,描述如下:
"有物不知其数,三个一数余二,五个一数余三,七个一数又余二,问该物总数几何?"
意思是有一个数X,除以3余2,除以5余3,除以7余2,求该数X,当然,<孙子算经>也给出了解题的方法:
"三三数之,取数七十,与余数二相乘;五五数之,取数二十一,与余数三相乘;七七数之,取数十五,与余数二相乘。将诸乘积相加,然后减去一百零五的倍数。"
按照上面的思路,我们分别取数70,21,15,并分别乘上相应的值,得公式X=70*2+21*3+15*2-105*k.这里k为任意整数,假设k=1,根据该公式计算得X=140+63+30-105=128.
带到问题验证下:128%3=2 , 128%5=3, 128%7=2. k=2时,解得X=23,可以验证同样符合题意。
那么我们关心的是,这组简单的公式如何得到?
这里有三个关键数70,21,15,可以简单使用公式描述他们的性质:
70%3=1,70%5=0,70%7=0;
21%3=0,21%5=1,21%7=0;
15%3=0,15%5=0,15%7=1;
我们发现它们的性质很简单,但也有趣,它们分别对3,5,7也就是我们的除数mod(取余)余1,对其他数都能够被整除。同时,我们对70,21,15这三个数乘上2,3,2,是因为数X
对3,5,7的余数分别为2,3,2. 如70,其实是要找余2的,但只要找到了余1的再乘2即余2了,最后的105代表3,5,7的最小公倍数,即105=3*5*7.
总之,孙子问题的解法,是找出三个关键数70,21,15。解法的意思就是用70乘(3除所得的余数),21乘(5除所得的余数),15乘(7除所得的余数),然后总加起来,减去105的倍数就是答案。
简单解释
假设任意三个数a,b,c,数X对他们的余数分别为m1,m2,m3,分别找出能被两个数整除,而满足被第三个整数整除余1的最小数。即
k1%a=1,k1%b=0,k1%c=0
k2%a=0,k2%b=1,k2%c=0
k3%a=0,k3%b=0,k3%c=1
这里,令T1,T2,T3分别为:
T1=k1*m1;(满足T1%a=m1,T1%b=T1%c=0)
T2=k2*m2;(满足T2%b=m1,T2%a=T2%c=0)
T3=k3*m3;(满足T3%c=m3,T3%a=T3%b=0)
设T‘ = T1+T2+T3 ,则T’显然能够满足题目,又Q=a*b*c能同时整除a,b,c,固X=T‘+tQ(t为任意整数)满足题目要求的解。
定理的通用形式:
用现代数学语言来说明的话,中国剩余定理可以描述为下面的一次线性同余方程组:
中国剩余定理说明:假设m1,m2,....mn两两互质,对任意的整数a1,a2,a3.....an,方程(S)有解,并且通解可以用如下方式构造得到:
1.(m1,m2...mn的乘积),并设是除了mi以外的n - 1个整数的乘积。
2.设为模的数论倒数:
3.方程组的通解形式为: 在模的意义下,方程组只有一个解:
注:第2步中,ti为Mi模mi的数论倒数,也就是求解关键数的关键一步,在上述问题中,例如70=2*5*7,即2为这里的t值。
证明
从假设可知,对任何,由于,所以即mi,mj互质,最大公约数为1,这说明存在整数使得(<MAT-欧几里得与拓展欧几里得算法>一篇已证明).
注:类似说明简单解释中的T1%a=m1,T1%b=0,T1%c=0.
所以满足:
(这里的x同T')
这说明x就是方程组S的一个解。而所以方程组的任何两个解之间必然相差的整数倍,由于是一个解,同时所有形式为:的整数也是方程组的解。所以方程组所有的解的集合就是:
- MAT-中国剩余定理
- 中国剩余定理模版【中国剩余定理】
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 数论-中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 数论/中国剩余定理
- 关于《中国剩余定理》
- 中国剩余定理
- 模板[中国剩余定理]
- 黑白之道
- 系统架构学习日志1——内存管理、虚拟存储地址的概念
- Java错误代码篇记录(一)--空指针异常
- 想提升工作效率,就別再做这七件事
- Android Activity原理以及其子类描述
- MAT-中国剩余定理
- Vs2010出现错误:cannot convert from 'const char [7]' to 'LPCWSTR'
- JSP/ Servlet常见的中文乱码原因
- LeetCode 006 ZigZag Conversion
- 母亲为还赌债卖掉亲儿子 父亲千里迢迢来到温州寻找儿子
- C语言中 near指针和far指针
- Filter 过滤器
- 经纬财富网:金银高位窄幅震荡,等待突破契机洛阳
- iret指令详解