QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3146|回复: 0
打印 上一主题 下一主题

中国剩余定理新解

[复制链接]
字体大小: 正常 放大

20

主题

3

听众

178

积分

升级  39%

  • TA的每日心情
    开心
    2016-8-29 17:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    新人进步奖

    跳转到指定楼层
    1#
    发表于 2012-12-25 20:01 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    中国剩余定理新解
    $ i  `* _0 \5 v2 _5 m为什么要编写本文?因为,中国剩余定理属于算术问题,算术的特征是准确性和唯一性。编写的目的是为了让人们确认它的准确性和唯一性,探索最简单的计算方法,便于人们推广应用。
      |0 U# V" S9 A' j  M1 L本文的主要内容:1、原题,2、基本原理,3、计算方法比较,4、中国剩余定理的扩展,5、趣谈中国剩余定理。
    4 r* K% \, q+ w2 X. n4 G1 e一、原题3 |# k3 b% v, H$ r
    中国剩余定理,又叫孙子定理,原文是:$ z2 ~- ~9 T  G4 ^5 c5 f/ p
    “《孙子算经》中的题目:有物不知其数,三个一数余二,五个一数余三,七个一数又余二,问该物总数几何? ' j6 _: q7 R( e- L7 ~
    《孙子算经》中的解法:三三数之,取数七十,与余数二相乘;五五数之,取数二十一,与余数三相乘;七七数之,取数十五,与余数二相乘。将诸乘积相加,然后减去一百零五的倍数。”对于这种解法(以下简称前人的计算方法)。9 p/ o% O$ Y3 h3 p& q/ G
    那么,前人计算方法的原理是什么?只有从计算原理,才知道该计算方法是否正确,所求之数是否存在,存在于什么范围之内?计算方法最简单、最方便的是什么?/ a+ X% i1 @/ a
    中国剩余定理,是从一种现象开始,寻找解决现象的方法。本人认为应该从基础原理开始,便于人们掌握和应用:) _, E2 }& q) v" j" D6 ^2 D
    二、基本原理8 |5 v8 g" b7 E+ A& ~5 D
    1、在整数中,用不同的器具,如2,3,5,7,11,13,17,…,N(素数)量一个固定的数,每一个量器都有一个固定的余数。
    : e8 g7 E& u$ m如某数为53,用2,3,5,7进行衡量,有53/2余1,53/3余2,53/5余3,53/7余4,即,53除以2,3,5,7都有一个固定的余数,也只有一个固定的余数。' O( U. ~8 C& ?5 z: J7 t# {$ n! p
    2、用2,3,5,7,11,13,17,…,N作为器具,每一个量器取一个固定的余数,在2*3*5*7*11*13*17*…*N之内(也就是在除数的最小公倍数之内),满足这些余数条件的数只有一个(具体分析见后)。# ]( g6 `2 K' |% j  {9 K
    如用2,3,5,7量M,当M/2余1,M/3余2,M/5余4,M/7余5,得M=89,89必然存在于2*3*5*7=210之内,在每210个连续数之内满足M/2余1,M/3余2,M/5余4,M/7余5的数只有一个数,可以用89+210N表示。1 u" ]- ?" G0 a: n2 J
    必然存在的理由依据:用2,3,5,7,11,13,17,…,N作为器具时。自然数除以2可以取2种余数,余0,余1;除以3可以取3种余数,余0,余1,余2;除以5可以取5种余数,余0,余1,余2,余3,余4;…,除以N可以取N种余数,余0,余1,余2,余3,余4,…,余N-1。不同的余数排列组合共有2*3*5*7*11*13*17*…*N个,正好对应2*3*5*7*11*13*17*…*N之内的数,每一组不同的余数对应这之内的一个数。为什么存在一一对应呢?请看下面的具体计算。# e% t, a" H6 @7 Q) F& ~3 R/ {% h
    3、除以A余C的数,为等差数列C+AN中的数,也只有C+AN中的数满足除以A余C。# R  _- W4 u8 I- @1 s. L7 p+ _
    如除以7余3的数,为等差数列3+7N中的数,也只有3+7N中的数满足除以7余3。
    # C/ I) {7 A+ L5 M4、除以A,B,…,C都余K,称为同余项。满足除以A,B,…,C都余K的数为等差数列K+(A*B*…*C)N,也只有K+(A*B*…*C)N中的数满足分别除以A,B,…,C都余K。
    4 W. J) H3 _. [# D3 ^三、计算方法比较0 Z/ }( H$ d2 n7 f" R/ e5 Q5 k: v
    计算方法,指求除以素数2,3,5,7,11,13,17,…,N各取一个固定的余数,在2*3*5*7*11*13*17*…*N之中,寻找满足这些条件的这一个数的方法。- D1 p8 J% Q4 L8 n. M9 x% w
    上面虽然说的是除以素因子2,3,5,7,11,…,N的依次排列,换为不同的素数A,B,C,D,E,…,Z这种说法仍然成立;排列顺序不一定依次,可以按自己的须要,认为怎样计算方便就怎样进行排列。
    2 C  F& X3 O. V" O解决这一问题,前人有两种方法,本人有一种计算方法,下面以同一个题进行比较:7 b& |3 t6 p* W
    方法一、
    ' t! @% l! V; E前人的计算方法为什么成立?其解题思路为:
    * x1 T8 S3 j) D! @令某数为M,令素数为A,B,C,D,…,Z,已知M/A余a,M/B余b,M/C余c,M/D余d,…,M/Z余z。求M=?
    ; U9 {3 D' `9 W- g) z因为A,B,C,D,…,Z为不同的素数,故,B*C*D*…*Z不可能被A整除,有(B*C*D*…*Z)N中取A个连续项,这A个连续项分别除以A的余数必然存在0,1,2,3,…,A-1,每一个余数都不缺少。所以,从这A个连续项中必然能寻找到除以A余1的数。再用除以A余1的这个数*a,其积必然除以A余a,这个除以A余a的数,为能够被素数B*C*D*…*Z整除的数,为第一个数;
    $ \/ \4 e& {4 R' l( @6 F再按同样的道理,从A*C*D*…*Z的倍数中寻找除以B余b的数,该数具备被素数A,C,D,…,Z整除的特性,为第二个数;
    & `* P- C- N. Y: @/ @1 u; W因为,第一个数除以A余a,第二个数能被素数A,C,D,…,Z整除,即能被A整除,所以,第一个数+第二个数之和,仍然保持除以A余a;( W% {: `0 D* r+ h
    同理,第二个数除以B余b,因第一个数能被B整除,所以,第二个数+第一个数之和,仍然保持除以B余b。即,第一个数+第二个数之和,为满足除以A余a,除以B余b,并且,能被C,D,…,Z整除。
    % a. V$ {: s" G6 @+ o( X4 S按同样的方法,从A*B*D*…*Z的倍数中寻找除以C余c的数,该数具备能被A,B,D,…,Z整除的特性,为第三个数;
    3 z" `. T+ g" h1 w4 `2 |因第一个数和第二个数,都能被C整除,故第三个数+(第一个数+第二个数),仍然保持除以C余c;又因第三个数能被A、B整除,所以,(第一个数+第二个数)+第三个数之和,仍然保持除以A余a,除以B余b。即第一个数+第二个数+第三个数之和,为除以A余a,除以B余b,除以C余c的数,而且,能被素数D,…,Z整除的数;
    / E  P; e5 {; g依此类推,按上面的方法寻找到除以各素数余数的数之总和,为满足除以各素数余数的条件的数。总和再减去能被这几个素数共同整除的数(A*B*C*D*…*Z)N后,其差仍然保持除以各素数余数的条件的数。由此构成前人对中国剩余定理的解法。
    5 z/ B, X- U0 N- y' W例:某数为M,M/3余2,M/5余4,M/7余3,M/11余6,求M=?
    4 F) [7 P) Q+ q5 M) f解:4 d4 R) l2 f% ~" A' u
    1、5*7*11=385,对385N取3项:385,770,1155,因385/3余1,有385*2=770,为除以3余2的数;. c  V( W6 C; Q9 x. _" w
    2、3*7*11=231,对231N取5项:231,462,693,924,1155,因231/5余1,有231*4=924,为除以5余4的数;
    0 x: p2 l  i! ~0 }' [* T3、3*5*11=165,对165N取7项:165,330,495,660,825,990,1155,有330/7余1,得330*3=990,为除以7余3的数;
    ( D( P! v* f2 `- x" N4、3*5*7=105,对105N取11项:105,210,315,420,525,630,735,840,945,1050,1155,因210/11余1,有210*6=1260,为除以11余5的数;8 I) U0 c- R8 H3 F
    5、770+924+990+1260=3944,因3*5*7*11=1155,3944/1155余479,即479为满足这些条件的数。
    ( u  k% s5 b+ _" w/ W( F# b其实,前人的计算方法,完全可以简化一个步骤,直接寻找满足余数条件的数,省略一步乘以余数得寻找之数:, J1 V+ C% U7 h
    1、5*7*11=385,对385N取3项:385,770,1155,因770/3余2;6 o# h, W. t$ X, e. c) p  j
    2、3*7*11=231,对231N取5项:231,462,693,924,1155,因924/5余4;
    0 E/ C8 S2 C/ l1 Z) V3、3*5*11=165,对165N取7项:165,330,495,660,825,990,1155,因990/7余3;
    , `+ \/ K, q3 j2 w6 U" _4、3*5*7=105,对105N取11项:105,210,315,420,525,630,735,840,945,1050,1155,因105/11余6。4 ?$ t( p6 K" X9 U; W; o
    5、770+924+990+105=2789,因3*5*7*11=1155,2789/1155余479,即479为满足这些条件的数。5 p2 I0 N3 n& }0 W5 q. Z6 I
    方法二、
    9 x5 W* {! u" C除以3余2为等差数列2+3N有:2,5,8,11,14,…,479,…,1154,要取5*7*11=385项,4 M1 M4 i  e3 M
    除以5余4为等差数列4+5N有:4,9,14,19,…,479,…,1154,要取3*7*11=231项。/ _9 i; e# X# T
    除以7余3为等差数列3+7N有:3,10,17,24,…,479,…,1151,要取3*5*11=165项,
    0 i4 h) {8 o& z' R除以11余6为等差数列6+11N有:5,16,27,38,…,479,…,1149,要取3*5*7=105项。5 \7 f9 S) I- n$ j
    因4个等差数列在1155内,只有479都同时存在,所以,只有479为满足这些条件的数。
    : ?( n( C0 P+ o& C2 p# K方法二对于计算较大的剩余数,很不适用,不可取。
    , h7 b& I. O! |7 ~9 ~. x本人的方法:8 g* a6 O* d9 j! e) S$ C& U2 }
    该计算方法,可以直观地说明剩余数在范围内存在的必然性和唯一性。我们边计算,边说明。+ m6 Y  E+ Q  g8 m- H/ [
    (1),初步计算:4 e) m! a+ C# d/ d
    对于素数11来说,1,2,3,4,5,6,7,8,9,10,11,在这11个连续数中,只有6除以11余6,满足除以11余6为等差数列6+11N;
    4 R) Z; x$ e/ ], ~- p' b素数7,对6+11N取7项,6,17,28,39,50,61,72,这7个数除以7余1,2,3,4,5,6,0都存在,这就是存在的必然性;只有17/7余3,这就是唯一性。因11*7=77,即在77之内满足除以11余6,除以7余3的数只有17,满足这两个条件的数为17+77N,表明每77个连续数之内只有一个数满足这两个条件。2 z$ @" g& f4 g# A7 W: V" ]3 I
    素数5,对17+77N取5项:17,94,171,248,325,这5个数除以5余1,2,3,4,0都存在,这就是存在的必然性;只有94除以5余4,这就是唯一性。因77*5=385,即在385之内满足除以11余6,除以7余3,除以5余4的数只有94,满足这三个条件的数为94+385N,表明每385个连续数中只有一个数满足这三个条件。9 r4 w4 |& s6 Z1 I+ o# m* w$ B; X
    素数3,对94+385N取3项:94,479,864,这3个数除以3余1,2,0都存在,这就是存在的必然性;只有479除以3余2,这就是唯一性。因385*3=1155,满足这4个条件的数为479+1155N,表明每1155个连续数中只有一个数满足这四个条件,也必然有一个数满足这四个条件。
    + g; \1 n0 D; U) @( ~0 d6 ~2 x(二),简化计算(该方法实用于计算大数):
    ' f, g/ h0 d. u$ n1,素数11,除以11余6为等差数列6+11N;; f0 w( j! y/ B0 X+ C2 x
    2,素数7,将等差数列6+11N的首项和公差同除以7的余数为6和4,组成新的等差数列6+4N,取7项之内必然有除以7余3的数,第一项6,第二项(6+4)-7=3,当出现与余数相同的数时,就不需要再往下计算了。代入原等差数列6+11*(2-1)=17,因11*7=77,得新的等差数列17+77N;5 u& S1 E/ t0 o7 a7 y: b
    3,素数5,将17+77N同除以5变为2+2N,取5项之内:2,4,得第二项满足条件,代入有17+77=94,因77*5=385,得新的等差数列94+385N;
    ' v7 \9 U1 f$ @6 r; M6 \4,素数3,将94+385N同除以3变为1+1N,取3项之内:1,2,得第二项满足条件,代入有94+385=497,因11*7*3*5=1155,即497+1155N数列的数都满足这4个条件。
    9 ~7 `! S5 w7 U+ n# `本人的这种方法,是在3+5+7+11=26个数之内,寻找在1155之内满足除以这4个素数余数条件的数,这种方法也叫滚雪球的方法,容易理解、操作都比前人的简单、方便。7 X0 K+ s0 J3 [) Z! x

    6 s  @* O" a! D( G! g( W方法二、同余的解法:
    0 b% C- E3 b, ^+ l3 e. N例M/5余3,M/11余4,M/19余3,M/29余4,M/37余3,求M=?& ~& s+ @, V5 Q% F+ l
    M除以5,19,37同余3,满足除以5,19,37都余3为等差数列3+(5*19*37)N,即3+3515N;
    2 D1 g7 m. r3 [8 t1 zM除以11,29同余4,满足除以11和29都余4为等差数列4+(11*29)N′,即4+319 N′。
    8 T5 @7 Z2 X5 R! ]6 o: F8 D这里又出现三种解法:
    . U( J4 J/ N3 X9 \1、将3+3515N取319项,4+319 N′取3515项,共同有之数为此题的解;
    1 c& u+ e7 s+ K) d8 U; N! ]2、将3+3515N取319项,寻找除以319余4的数,为此题的解;
    : o9 x% C2 ?9 m/ E# O4 S方法1和2比较烦锁(略)。( H. \; K7 R, v# O7 q' m/ O
    3、将3+3515N同除以29得等差数列3+6N取29项之内:3,9,15,21,27,4(当≥29时,减去29再算,下类似),得第6项除以29余4,代入原等差数列3+3515(6-1)=17578,因3515*29=101935,得等差数列17578+101935N。+ `# L/ ^5 V7 U! ^2 M
    将等差数列17578+101935N同除以11得等差数列0+9N,取11项内:0,9,7,5,3,1,10,8,6,4,得第10项除以11余4,代入原等差数列17578+101935*(10-1)=934993。又因5*11*19*29*37=1121285,即在1121285之内只有M为934993时,满足M/5余3,M/11余4,M/19余3,M/29余4,M/37余3。等差数列934993+1121285N的数,都满足这些条件。2 `# \1 B5 G6 n# c7 ^7 m2 k
    四、中国剩余定理的扩展
    + d2 Z8 h; h3 b2 y2 {中国剩余定理在初始阶段,都是除以素数的余数。后来,不可避免地扩展到除以合数的余数问题。当涉及除以合数的余数后,就出现了有的题有解,有的题无解。这到底是为什么?8 O' P; \( K; Z  A2 B  p  }
    前面说的是除以不同素数的余数,那么,除以任意数的余数是否存在必然性和唯一性呢?3 z: J2 B& q) D% P  K3 h5 g3 D
    这里的任意数,不包括0和1,任意数分为单合数、多合数、混合数、素数:
    # C8 z. p( a& K$ H单合数,指由单个素因子组成的合数,如8,16等由单个素因子2组成;9,27,81等由单个素因子3组成。 : W8 [: P# T# z- k
    多合数指两个以上不同素因子组成的合数,如30=2*3*5。
    2 s9 ?9 P- n# k! t* `5 l  o混合数指由单合数与多合数组成的合数,如840=8*3*5*7。7 o! h- |' W; \; s; \2 P! q
    例一,M/16余3,M/105余4,M/11余5,M/3余1,求M=?
    * `  C; {( {) e+ @: f* q首先审题:16为单个素因子2,105=3*5*7,还有11,3。这里只有一个重复素因子3,对于单个素因子3已经明确M/3余1;在多合数中M/105余4,用该余数4/3余1,没有矛盾,该题为可解之题。
    0 U3 z7 T- ~' e' ~  a抛开重复素数3后有:16*105*11=18480,表明在18480内该题有解,有唯一的解:
    - g/ c: @) d/ a5 Q7 {满足除以105余4为等差数列4+105N,将4+105N化为4+9N取16项内:4,13,6,15,8,1,10,3,得第8项满足除以16余3,代入原等差数列4+105(8-1)=739,因105*16=1680,即在1680内同时满足除以105余4,除以16余3,只有739,得等差数列739+1680N;
    7 r7 L3 `/ V7 I将该等差数列739+1680N化为2+8N,取11项:2,10,7,4,1,9,6,3,0,8,5,满足除以11余5为11项,代入的等差数列739+1680(11-1)=17539,因1680*11=18480,满足这些条件的数只有17539+18480N等差数列的数。
    ( ^) [" V1 P& J, B, f; T% u7 H例二,M/135余37,M/63余28,M/105余7,求M=?7 W5 w- U6 e" ]4 D6 n0 Y
    这里的135=3*3*3 *5,63=3*3*7,105=3*5*7。单合数有3的平方,3的立方;素数有3,5,7。计算最小公倍数时,单合数取素数N次方中最高的,即3*3*3=27,表明该题有除数27,5,7。有27*5*7=945,那么,满足这些条件的最小数在它们的公倍数945之内。( M0 m& C" b- m( [
    审题:37/3余1,28/3余1,7/3余1;37/5余2,7/5余2;28/7余0,7/7余0。其余数除以素因子的余数,都没有矛盾,表明该题有解。
    1 c9 `' E: K+ U& p因M/135包括M/27和M/5,所以,该题变为:M/135余37,M/7余0。
    4 f' T" V( ]  x- i; n4 @- [# z, QM/135余37为等差数列37+135N,化为2+2N取7项内:2,4,6,1,3,5,0,得第7项除以7余1,代入原等差数列37+135*(7-1)=847,即847+945N数列的数都满足这些条件。8 [8 \+ P" j" U! ]
    说明:
    8 C1 u; [# Q" V" ]: F1、 单个素因子组成的合数是不能拆分的,其除数取素数N次方中最高的;# f  H  i  N$ T- S
    2、 多个素因子组成的合数是可以拆分的,拆分方法:为总余数除以各素因子;
    & a) U8 D0 y1 E1 K/ P% @/ S0 i3、 重复素因子,应先检验是否有矛盾,无矛盾是可解之题,有矛盾是无解之题;, [7 r( G' @5 R3 g' Z
    4、 重复素因子,重复合数,应当抛开重复后,再进行计算。 5 Y8 C) Z5 J$ C$ b2 d  {+ ?
    再举一个重复数的抛开,如M/105余19,M/165余139,求M=? ; @+ n6 F1 `9 [( q4 j
    审题:105=3*5*7,165=3*5*11,两个合数中都有素因子3和5,因总余数19/3余1,139/3余1;19/5余4,139/5余4,余数除以素因子的余数无矛盾,该题有解。* N% s4 q. v7 m  {2 L
    选择抛开105中的3和5,剩余7,有19/7余5,原题变为M/7余5,M/165余139。- R; U9 W+ Z) m! t
    由M/165余139为等差数列139+165N,先化为6+4N取7项内:6,3,0,4,1,5,第6项满足除以7余5,代入原等差数列139+165*(6-1)=964,因165*7=1155,得满足该题的解为964+1155N。; z$ K9 h! r  k3 T$ O' _
    中国剩余定理的结论:. o/ j  H, y: y, s
    令任意固定整数为M,当M/A余a,M/B余b,M/C余c,M/D余d,…,M/Z余z时,这里的A,B,C,D,…,Z为除数,除数为任意自然数(不包括0和1)时;余数a,b,c,d,z为自然整数时。 4 l5 h7 F4 ~. @" B. O# {3 O
      1、当题正确时,在这些除数的最小公倍数内有解,有唯一的解,每一个最小公倍数内都有唯一的解;当题错误时,在整个自然数范围内都无解。
    " T; z: a' F( G2 X4 T( o2、当M在两个或两个以上的除数的最小公倍数内时,这两个或两个以上的除数和余数同时定位M在最小公倍数内的具体位置,也就是M的大小。
    % h( T8 i4 \* b3 N8 k五、趣谈中国剩余定理3 A2 l3 h) G0 O
    我们以57为例,有57/2余1,57/3余0,57/5余2,57/7余1,57/11余2,57/13余5,57/17余6,57/19余0,57/23余11,57/29余28,57/31余26,57/37余20,57/41余16,57/43余14,57/47余10。
    , I- }. _& b! t' [; n这里有15个素数作为57的参照,那么,所有素数的乘积大于57许多;分别乘积,大于57的也有许多,素数如3*5*7=105,2*3*11=66,2*47=94都大于57。所有素数的乘积与部分素数的乘积,对于57的定位如何呢?; A! E6 e! U" Z) G- i# ?$ n
    (一)部分素数& V3 ~% H* K- l* i5 L- T( d7 |$ X
    1、按3*5*7=105,为:
    " E& z/ p7 ]+ \% P1 M" U: ^0 D: R/ A满足除以7余1为等差数列1+7N,取5项有1,8,15,22,29,满足除以5余2为22,因7*5=35,得等差数列22+35N,( e. N- @' ~4 T" V
    对等差数列22+35N取3项为,22,57,92,满足除以3余0为57,因35*3=105,得等差数列57+105N满足除以3,5,7的余数条件;
    ) H1 Z# j) H5 [2、按2*3*11=66,为:
    * t! Q) I8 u# I; h( ^满足除以11余2为等差数列2+11N,取3项有2,13,24,满足除以3余0为24,因11*3=33,得等差数列24+33N,取2项24,57,有57满足除以2余1,因33*2=66,得等差数列57+66N满足除以2,3,11的余数条件;
    4 B, ?% ~; S" a% q8 E! F2 A& v3、按2*47=94为:满足除以47余10为等差数列10+47N,取2项10,57,有57满足除以2余1,因2*47=94,得等差数列57+94N满足除以2和47的余数条件。
    9 P4 e% \: X6 m$ T(二)、全部素数
    9 `- }; V3 H+ F- Z, @, G. N前面计算了除以素因子3,5,7的余数后,得等差数列57+105N,+ h: Y4 D" d# r7 j% S0 L2 S5 _# n( Q
    再计算11时,将57+105N取11项,57,162,267,…,只有第一项满足除以11余2,因105*11=1155,得等差数列57+1155N,再计算13时,将该等差数列取13项,57,1212,2367,…,只有第一项满足除以13余5;……。! z3 ~+ i  d( U: A* B  ^
    也就是说,在614889782588491410之内的任意一个数,锁定了它除以这些素因子的余数;反过来除以这些素因子的余数,也锁定了在614889782588491410之内的这个数。不论你先计算除以哪一个素因子的余数,后计算除以哪一个素因子的余数,结果都是一样的。
    ) C. c" R# c3 a9 j5 B从这里也可以看出,当几个素因子的乘积大于这个数时,从除以这几个素因子的余数,就可以准确地计算出这个数。
    8 Q8 r; z( T* T6 I5 G四川省三台县工商局:王志成。
    5 x2 ~3 e& S! j9 |
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-13 07:58 , Processed in 0.623789 second(s), 51 queries .

    回顶部