中国剩余定理(孙子定理)
中国剩余定理

中国剩余定理中国剩余定理:中国剩余定理(孙⼦定理)是⽤于解决⼀次同余⽅程组的⼀种⽅法。
定理的思路是将两个同余⽅程合为⼀个再下⼀个⽅程合并,最后得到答案。
那么先来看看对于两个⽅程的合并:x = a1(mod n1)x = a2(mod n2)将⽅程都转换为乘积与和的形式:x = n1 * T1+a1x = n2 * T2+a2将上述两式合并整理得:n1T1=(a2-a1)+n2T2设gcd(n1,n2) = d,c = a2 - a1,则合并的同余⽅程可变形为(n1/d)*T1 = (c/d)(mod n2/d)T1 =(c/d)*(n1/d)^-1(mod n2/d)不妨设S = (c/d)(n1/d)^-1,则T1=t(n2/d) + S,那么x = n1[t(n2/d)+S]+a1 = (n1n2/d) t + n1S+a1,即x = n1S+a1(mod n1n2/d)那么在带⼊求解时新的a3 = n1S + a1,n3 = n1n2/d,最终,其中最⼩的x就是最后剩余的⽅程的a(mod n)#include"iostream"using namespace std;typedef long long LL;LL r[1001],m[1001],N;LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}LL ex_gcd(LL a,LL b,LL &x,LL &y){if(b == 0){x = 1;y = 0;return a;}LL d = ex_gcd(b,a%b,x,y);LL t = x;x = y;y = t -(a/b)*y;return d;}LL Inv(LL a,LL b){LL d = gcd(a,b);if(d!=1)return -1;LL x,y;ex_gcd(a,b,x,y);return (x%b+b)%b;}bool megre(LL r1,LL m1,LL r2,LL m2,LL &r3,LL &m3){LL d = gcd(m1,m2);LL r = r2-r1;if(r%d)return 0;r = (r%m2+m2)%m2;m1/=d;m2/=d;r/=d;r*=Inv(m1,m2);r%=m2;r*=m1*d;r+=r1;m3 = m1*m2*d;r3 = (r%m3+m3)%m3;return 1;}LL CRT(){LL A1 = r[1],B1 = m[1];for(int i = 2;i <= N;i++){LL A2 = r[i],B2 = m[i];LL A3,B3;if(!megre(A1,B1,A2,B2,A3,B3))return -1;A1 = A3;B1 = B3;}return (A1%B1+B1)%B1;}int main(){cin >> N;for(int i = 1;i <= N;i++)cin >> m[i];for(int i = 1;i<= N;i++)cin >> r[i];cout <<CRT(); return 0;}。
孙子定理

公元前后的《孙子算经》中有“物不知数”问题:“今有物不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何?”答为“23”。
也就是求同余式组x≡2 (mod3),x≡3 (mod5 ),x≡2 (mod7)(式中a≡b (modm)表示m整除a-b )的正整数解。
明朝程大位用歌谣给出了该题的解法:“三人同行七十稀,五树梅花廿一枝,七子团圆月正半,除百零五便得知。
”即解为x≡2×70+3×21+2×15≡233≡23(mod105)。
此定理的一般形式是设m = m1 ,… ,mk 为两两互素的正整数,m=m1,…mk ,m=miMi,i=1,2,… ,k 。
则同余式组x≡b1(modm1),…,x≡bk(modmk)的解为x≡M'1M1b1+…+M'kMkbk (modm)。
式中M'iMi≡1 (modmi),i=1,2,…,k 。
直至18世纪 C.F.高斯才给出这一定理。
孙子定理对近代数学如环论,赋值论都有重要影响。
编辑本段解法解法中的三个关键数70,21,15,有何妙用,有何性质呢?首先70是3除余1而5与7都除得尽的数,所以70a是3除余a,而5与7都除得尽的数,21是5除余1,而3与7都除得尽的数,所以21b是5除余b,而3与7除得尽的数。
同理,15c是7除余c,3与5除得尽的数,总加起来70a+21b+15c 是3除余a,5除余b ,7除余c的数,也就是可能答案之一,但可能不是最小的,这数加减105(105=3*5*7)仍有这样性质,可以多次减去105而得到最小的正数解。
附:如70,其实是要找余2的,但只要找到了余1的再乘2即余二了。
孙子问题的解法,以现代的说法,是找出三个关键数70,21,15。
解法的意思就是用70乘3除所得的余数,21乘5除所得的余数,15乘7除所得的余数,然后总加起来,除以105的余数就是答案。
即题目的答案为70×2+21×3+15×2=140+63+30=233233-2×105=23公式:70a+21b+15c-105n(中国剩余定理CRT)设m1,m2,...,mk是两两互素的正整数,即gcd(mi, mj) =1, i≠j, i,j = 1,2,...,k则同余方程组:x≡b1 mod m1x≡b2 mod m2...x≡bk mod mk模[m1,m2,...,mk]有唯一解,即在[m1,m2,...,mk]的意义下,存在唯一的x,满足:x≡bi mod [m1,m2,...,mk], i = 1,2,...,k。
孙子定理公式

孙子定理公式孙子定理,又称中国剩余定理,这可是数学世界里一颗璀璨的明珠!咱先来说说啥是孙子定理。
简单来讲,就是在解决一类同余式组问题时的超级神器。
比如说,有一堆东西,除以 3 余 2,除以 5 余 3,除以 7 余 2,问这堆东西最少有多少?这时候孙子定理就派上用场啦。
那孙子定理的公式是啥样呢?咱来瞧瞧。
设 m1, m2,..., mk 是两两互质的正整数,M = m1 × m2 ×... × mk,Mi = M / mi ,ti 是满足Mi × ti ≡1 (mod mi) 的整数,则同余式组x ≡ a1 (mod m1) ,x ≡ a2 (modm2) ,... ,x ≡ ak (mod mk) 的解为x ≡ a1 × M1 × t1 + a2 × M2 × t2 +... + ak × Mk × tk (mod M) 。
是不是有点晕乎?别着急,我给您举个例子就清楚了。
有一天,我在课堂上讲这个孙子定理。
我问同学们:“假设一堆苹果,除以 5 余 2,除以 7 余 3,那最少有多少个苹果呀?”这时候,教室里安静得连根针掉地上都能听见。
大家都皱着眉头,苦思冥想。
我看着他们的样子,心里也有点着急。
不过我还是耐着性子,一步一步引导他们。
“咱们先算算 M 是多少呀?5×7=35,所以 M 就是 35。
那 M1 呢?就是 35÷5 = 7,M2 就是 35÷7 = 5。
接下来,咱们要找到满足7×t1 ≡ 1 (mod 5) 和5×t2 ≡ 1 (mod 7) 的 t1 和 t2 。
”这时候,有个平时挺机灵的同学小声说:“老师,t1 是不是 3 啊?因为 7×3 = 21,21 除以 5 余 1 。
”我一听,特别高兴,赶紧表扬他:“对啦,真聪明!那 t2 呢?”大家又陷入了思考。
【小升初专项训练】10 孙子定理

第13讲孙子定理第一关求被除数【知识点】1 .孙子定理的含义:也叫中国剩余定理.《孙子算经》中“物不知数”问题说:“今有物,不知其数,三三数之剩二,五五数∙∙之剩三,七七数之剩二,问物几何?”即被三除余二,被五除余三,被七除余二的最小整数.这个问题称作孙子问题,俗称韩信点兵.其正确解法叫做孙子剩余定理.2 .中国轲余定理的结论:令任意固定整数为M,当M/A余a,MZB余b,M/C余c,M/D余d,…,M/Z余Z时,这里的A,B,C,D,…,Z为除数,除数为任意自然数(如果为。
,没有任何意义,如果为1,在孙子定理中没有计算和探讨的价值,所以,不包括O和1)时;余数a,b,c,d,Z为自然整数时.1 .当命题正确时,在这些除数的最小公倍数内有解,有唯一的解,每一个最小公倍数内都有唯一的解;当命题错误时,在整个自然数范围内都无解.2 .当M在两个或两-个以上的除数的最小公倍数内时,这两个或两个以上的除数和余数可以定位M在最小公倍数内的具体位置,也就是M的大小.3 .正确的命题,指没有矛盾的命题:分别除以A,B,C,D,…,Z不同的余数组合个数=A,B,C,D,…,Z的最小公倍数二不同的余数组合的循环周期.【例1】有一个整数,除以3余数是2,除以5余数是3,除以7余数是4,这个数可能是多少?A.67B.73C.158D.22【答案】C【例2】一个自然数除以13余6,除以29余7,这个自然数最小是多少?【答案】123【例3】一个数除以4余3,•除以5余2,除以6余1,这个数最小是多少?【答案】7【例4】有一个数除以3余2,除以5余3,除以7余4,除以9余5.这个数至少是多少?【答案】158【例5】被4除余1,被5除余2,被6除余3的最小自然数是多少?【答案】57【例6】一个数被2,3,7除结果都余1,这个数最小是多少?【例7】被3除余2,被5除余4,被7除余4的最小自然数是多少?【答案】74【例8】一个数,它除以11余8,除以13余10,被3除余1,这个数最小是多少?【答案】283【例9】某数用6除余3,用7除余5,用8除余1,这个数最小是几?【答案】33【例10】一个数除以5余2,除以6余2,除以7余3,求能漏足这三个条件的最小自然数是多少?【答案】122【例11】一个自然数除以3余2,除以5余4,除以7余6,这个自然数最小是多少?【答案】104【例12】一个数能被3、5、7整除,若用11去除则余1,这个数最小是多少?【答案】210【例13】•筐橘子,三三数之余一,五五数之余四,七七数之余二,筐里最少有多少个橘子?【答案】79【例14】一堆糖.分给A、B、C三个班级的小朋友(每班人数互不相同),如果A班每人6颗,则多3颗;乙班每人7颗,则少3.颗;丙班每人8颗,则少7颗,问这堆糖至少有多少颗?【答案.】81【例15】有一筐苹果,甲班分,每人3个还剩11个;乙班分,每人4个还剩10个;丙班分,每人5个还剩12个.那么这筐苹果至少有多少个?【答案】62【例16】有一盒乒乓球,每次8个8个地数,10个10个地数,12个12个地数,最后总是剩下3个.这盒,乒乓球至少有多少个?【答案】123【例17】一筐苹果,如果按5个一堆放,最后多出3个.如果按6个一堆放,最后多出4个.如果按7个一堆放,还多出1个.这筐苹果至少有多少个?【答案】148【例18】五年级的学生排队做操,如果10人一行则余2人,如果12人一行则余4人,如果16人一行则余8人,那么五年级最少有多少人?【答案】232【例19】一个三位数被3除余1,被5除余3,被7除余5,这个数最大是多少?【答案】943【例20】设。
中国剩余定理

汉语余数定理,也称为汉语余数定理,是一个数论中关于一个变量的线性同余方程的定理,它解释了一个变量的线性同余方程的判据和解。
又称“孙子定理”,有“韩新兵”,“孙子定理”,“求术”(宋申国),“鬼谷计算”(宋周密),“隔墙”等古代名称。
计算”(宋周密),“切管”(宋阳辉),“秦王暗中战士”和“无数事物”。
一个变量的线性一致等式的问题最早可以在中国南北朝(公元5世纪)数学书《孙子书经》第26期中找到,这被称为“物是物”。
未知”。
原文如下:未知的事物,三到三个剩下两个,五到五个剩下三个,七到七个剩下两个。
问事物的几何形状?也就是说,将一个整数除以三分之二,五分之三和七分之二以找到该整数。
孙子的《佛经》首次提到了全等式问题和上述特定问题的解决方案。
因此,中国余数定理在中国数学文献中也将称为“孙子定理”。
1247年,宋代数学家秦久绍对“物不知数”问题给出了完整而系统的回答。
明代数学家程大为将解决方案汇编成《孙子的歌》,很容易赶上:三个人一起走了七十次,五棵树有二十一朵梅花,七个儿子团聚了半个半月。
除了一百零五,我们知道这首歌给出了秦绍的全同方程的模3、5和7的解。
意思是:将3除以70得到的余数,再乘以5除以得到的余数。
在图21中,将7除以15得到的余数相乘,将它们全部加起来并减去105或105的整数倍,得到的数字就是答案(除以105
得到的余数就是最小答案)。
例如,在上述事物数量未知的问题中,使用上述方法进行计算,根据民谣计算出的结果为23。
中国剩余定理和超递增序列

中国剩余定理和超递增序列
中国剩余定理,又称孙子定理,是数论中的一个关于一元线性同余方程组的定理。
这个定理说明了一元线性同余方程组有解的准则以及求解方法。
中国剩余定理的应用非常广泛,包括密码学、计算机科学、组合数学等领域。
超递增序列则是一个数学概念,指的是一个整数序列,其中每个元素都大于其前面所有元素之和。
超递增序列在密码学和计算机科学中也有重要的应用,特别是在公钥密码体制和数据压缩算法中。
虽然中国剩余定理和超递增序列都是数学领域中的重要概念,但它们之间并没有直接的联系。
中国剩余定理主要关注的是一元线性同余方程组的解,而超递增序列则主要关注的是一个整数序列的特殊性质。
因此,在大多数情况下,这两个概念是分开讨论的。
然而,在某些特定的应用场景中,中国剩余定理和超递增序列可能会同时出现。
例如,在公钥密码体制中,可能会使用中国剩余定理来构造一个同余方程组,同时使用超递增序列来保证密钥的安全性。
总之,中国剩余定理和超递增序列都是数学领域中的重要概念,它们在各自的领域中有广泛的应用。
虽然它们之间没有直接的联系,但在某些特定的应用场景中可能会同时出现。
关于孙子定理(中国剩余定理)及其证明

关于孙⼦定理(中国剩余定理)及其证明孙⼦定理的内容:给出以下的⼀元线性同余⽅程组:(S ):x ≡a 1(mod m 1)x ≡a 2(mod m 2)…x ≡a n (mod m n )假设整数m 1,m 2,…,m n 两两互质,则对任意的整数:a 1,a 2,…a n ,⽅程组(S )有解,并且通解可以⽤如下⽅式构造得到:设M =m 1×m 2×…×m n =∏n i =1m i ,并设M i =Mm i ,∀i ∈1,2,…n 设t i =M −1i 为M i 模m i 的数论倒数(t i 为M i 模m i 意义下的逆元),即M i t i ≡1(mod m i ),∀i ∈1,2,…,n .⽅程组(S )的通解形式为x =a 1t 1M 1+a 2t 2M 2+…a n t n M n +kM =kM +∑n i =1a i t i M i ,k ∈Z .在模M 的意义下,⽅程组(S )只有⼀个解:x =∑n i =1a i t i M i (mod M )证明:从假设可知,对任何i ∈1,2,…,n ,j ≠i ,gcd (m i ,m j )=1,所以gcd (m i ,M i )=1.这说明存在整数t i 使得t i M i ≡1(mod m i ).这样的y i 叫做M i 模m i 的数论倒数。
考察乘积a i t i M i 可知:a i t i M i ≡a i ×1≡a i (mod m i )∀j ∈1,2,…,n ,j ≠i ,a i t i M i ≡0(mod m j )所以x =a 1t 1M 1+a 2t 2M 2+…+a n t n M n 满⾜:∀i ∈1,2,…,n ,x =a i t i M i +∑j ≠i a j t j M j ≡a i +∑j ≠i 0≡a i (mod m i )这说明x 就是⽅程组(S )的⼀个解。
浅谈“中国剩余定理”在小学数学学习中的运用

浅谈“中国剩余定理”在小学数学学习中的运用中国剩余定理是数论中的一个重要定理,它在数学领域有着重要的应用价值。
而在小学数学学习中,中国剩余定理也可以通过一些简单的案例来引导学生理解和运用。
本文将从中国剩余定理的基本概念、小学数学中的应用以及学生学习中的启示三个方面来探讨中国剩余定理在小学数学学习中的运用。
一、中国剩余定理的基本概念中国剩余定理是由中国古代数学家孙子约公元7世纪所著的《孙子定理》中提出的,它是一个关于模的定理。
主要内容是:如果m1,m2,…,mn 是两两互质的正整数,a1,a2,…,an 是任意整数,那么模方程组x≡a1(mod m1)x≡a2(mod m2)⋯x≡an(mod mn)有唯一的解。
这就是中国剩余定理的基本内容。
一个简单的例子可以帮助我们了解中国剩余定理的基本概念:例:假设一条囚犯刑期是365天,他想用一个长度在35-45之间的鞭认了当前日子。
该如何完成。
解:这个问题可以看作是一个中国剩余定理的实际问题。
因为365=5*73 。
那么鞭的长度模5的余数必须是0。
因为365=8*45+25 ,所以鞭的长度模8的余数必须是5。
通过中国剩余定理可以知道,模45的余数是25的数只有70。
所以囚犯只需要找一个长度为70的鞭。
(这是一个简单的例子,通过它我们可以初步了解中国剩余定理的基本思想和原理。
)二、小学数学中的应用在小学数学学习中,我们可以通过一些简单的案例来引导学生理解和运用中国剩余定理。
可以引导学生用中国剩余定理解决一些有关时间、距离等实际问题。
这样做不仅可以使学生更加深入地理解中国剩余定理的概念和原理,还可以锻炼学生的数学建模能力和解决问题的能力。
一般来说,小学数学的教学案例其实很简单,可以通过直观的案例引导学生理解和运用中国剩余定理。
以时间问题为例,可以设计这样的案例:某人一次修行时间为3天,另一次修行时间为4天,他已经做了第一次修行,那么他接下来需要再修行多久才能修满一年呢?通过这样的案例,学生可以逐步了解并掌握中国剩余定理的基本方法和步骤。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国剩余定理(孙子定理)
问题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。
问物几何?
简单点说就是,存在一个数x,除以3余2,除以5余三,除以7余二,然后求这个数。
上面给出了解法。
再明白这个解法的原理之前,需要先知道一下两个定理。
定理1:几个数相加,如果存在一个加数,不能被整数a整除,那么它们的和,就不能被整数a整除。
定理2:两数不能整除,若除数扩大(或缩小)了几倍,而被除数不变,则其商和余数也同时扩大(或缩小)相同的倍数(余数必小于除数)。
以上两个定理随便个例子即可证明!
现给出求解该问题的具体步骤:
1、求出最小公倍数
lcm=3*5*7=105
2、求各个数所对应的基础数
(1)105÷3=35
35÷3=11......2 //基础数35
(2)105÷5=21
21÷5=4 (1)
定理2把1扩大3倍得到3,那么被除数也扩大3倍,得到21*3=63//基础数63
3、105÷7=15
15÷7=2 (1)
定理2把1扩大2倍得到2,那么被除数也扩大2倍,得到15*2=30//基础数30
把得到的基础数加和(注意:基础数不一定就是正数)
35+63+30=128
4、减去最小公倍数lcm(在比最小公倍数大的情况下)
x=128-105=23
那么满足题意得最小的数就是23了。
一共有四个步骤。
下面详细解释每一步的原因。
(1)最小公倍数就不解释了,跳过(记住,这里讨论的都是两两互质的情况)
(2)观察求每个数对应的基础数时候的步骤,比如第一个。
105÷3=35。
显然这个35是除了当前这个数不能整除以外都能够被其他数整除,就是其他数的最小公倍数。
相当于找到了最小的起始值,用它去除以3发现正好余2。
那么这个基础数就是35。
记住35的特征,可以整除其他数但是不能被3整除,并且余数是2。
体现的还不够明显,再看下5对应的基础数。
21是其他数的最小公倍数,但是不能被5整除,用21除以5得到的余数是1,而要求的数除以5应该是余1的。
所以余数被扩大,就得到了相应的基础数63。
记住这个数的特征,可以被其他数整除但是被5除应该余三。
同理,我们得到了第三个基础数23,那么他的特征就是:可以被其他数整除,但是不能被7整除,并且余数为2。
(3)第三步基础数加和,为什么要这样做呢?利用就是上面提到的定理1。
35+63+30=128。
对于3来说,可以把63+30的和看作一个整体,应该他们都可以被3整除。
看着上面写出的三个数的特征,运用定理1来说,就是在35的基础上加上一个可以被3整除的倍数,那么得到的结果依然还是满足原先的性质的,就是128除以同样还是余2的。
同理,对于5还说,这个数被除之后会剩余3;对于7来说,被除之后剩余2。
所以说,我们当前得到的这个数是满足题目要求的一个数。
但是这个数是不是最小的,那就不一定了。
(4)应该不能确定是不是最小的数,这个时候就要用到他们的最小公倍数了。
最小公倍数顾名思义,一定是一个同时被几个数整除的最小的一个数,所以减去它剩余下来的余数还是符合题
意要求的。
当然也同样可以运用定理1来解释,只不过是加法变成了减法,道理还是一样的。
当然具体要不要剪还是要看和lcm的大小关系的。
稍微的总结一下:就是已知m1,m2,m3是两两互质的正整数,求最小的正整数x,使它被m1,m2,m3除所得的余数分别是c1,c2,c3。
孙子定理的思想便是线分别求出被其中数mi 整除余1而被另外两个数整除的数Mi(i=1,2,3),则所求数之一的便是
c1M1+c2M2+c3M3。
由此我们可以得到n个两两互质数的情况。
证明上面已经一步一步给出。
那么,到此为止基本的中国剩余定理的内容我们以及了解了,包括解答方法。
那么如何编码呢?按照上面这个思路去编码,其实并不难。
一共分为四大步。
但是,大多数人的困惑在于如何求取基础数。
这里呢,提供两种方法:
(1)第一种就是一直递增,直到找到。
例如:3的基础数,35是其他数的最小公倍数。
那么就从35开始,一直自增,知道余数为2,便停止(利用while循环)。
(2)第二种方法呢就是辗转相除法上得来的。
这里的例子体现的不够明显,应当看看去求取乘法逆元的过程,下面讲的内容和乘法逆元有很大的关系,所以还是看看的好。
简单举个例子:假设现在三个数分别是14,3,5,它们两两互质,且要求的数除以5余3。
求5对应的基础数。
有:
42÷5=8 (2)
5÷2=2 (1)
所以1=5-2*2=5-2*(42-8*5)=-2*42+17*5
那么-2*42=-84 17*5=85 -84+85=1
把1扩大3倍变成3,则有-84*3=-252也就是5对应的基础数。
第一点:基础数可以是负数,这个之前点到过。
//并且下面的解法就是有这样的。
第二点:当得到余数为1的时候后面的算式相当于是一个回溯的过程,最后解到-2*42。
但是还只不过是余数是1的情况对应的数,再运用定理2我们就得到了-252这个基础数。
实际上要是看过乘法逆元,这里实际就是乘法逆元的求解过程,而-2也就是42关于15取模的乘法逆元。