韩信点兵怎么写( 二 )


BBB 下面谈韩信的计算方法 。(不重复的应当是105个 。)
韩信点兵,叫战士按3个一小团,最后剩下a个;同样,5个一团,剩b个;7个一团,剩c个.写成数论术语:人数x,x ==a mod 3==b mod 5==c mod 7 用中国剩余定理略加改造(计算起来可能比直接用中国剩余定理简洁些,因为有时余数会巧合,特别是余数为0时可以省去一个计算项):x1==a mod 3==0 mod 5==0 mod 7 x2==0 mod 3==b mod 5==0 mod 7 x3==0 mod 3==0 mod 5==c mod 7 则可取x==x1+x2+x3 mod 3*5*7,即x=x1+x2+x3+105*k.用中国剩余定理则是 x1==1 mod 3==0 mod 5==0 mod 7 即x1==1 mod 3==35k1(5*7的倍数) x2==0 mod 3==1 mod 5==0 mod 7 即x2==1 mod 5==21k2(3*7的倍数) x3==0 mod 3==0 mod 5==1 mod 7 即x3==1 mod 7==15k3(3*5的倍数) 则可取x==x1*a+x2*b+x3*c mod 3*5*7,即x=x1+x2+x3+105*k.很显然可以取x1=70,x2=21,x3=15.这就是孙子算经上的歌诀的由来 。这似乎反映了一个历史事实,像九除法那样,类似韩信点兵的算法,在古人实际计数中曾经广为应用过 。
由于三,五,七这几个数字较小,并且便于计数,所以成为了一种计数的定式,因此就广为应用,也就有了这样的歌诀吧 。我想,用7,9,10这样三个数,在计算上是更好些;但是,在实际操作中还是用3,5,7来便捷些,你说是吗?歌诀是:三人行路七十稀,五树梅花廿一枝(二十一),七子团圆整半月,除(去)百零五便得知 。
好记 。而里面的机关,就是上面AAA所论 。
CCC:显然,a作为3的余数,有0,1,2三种取值(0对应无余数,或者说整除,或者说整倍数的情况);同理b有5种取值,c有7种,并且互不干涉,共3*5*7=105种 。其实,任意数除以105的余数,自然有从0到104共105种取值 。
DDD:关于计算,我举个例子:x=1 mod 3 =2 mod 5 = 3 mod 7或作 x==1 mod 32 mod 53 mod 7 显然,x==1*70+2*21+3*15 mod 105.关键是,这个计算有巧法,并且从来没有被揭示过 。其实很简单 。
我写成下面的形式,由于打字不便,比我在草稿纸上的书写其实还繁很多,但可以看出精髓所在 。x==1*2 @ 3 (注意*和@中间的那个2,是5*7*@=1 mod 3的解)2*1 @ 53*1 @ 7== -1 @ 32 @ 53 @ 7==1 @ 153 @ 7==7+45==52 这里的奥秘,便是将 x==2a*5*7+3*b*7+3*5*c mod 3*5*7写成了类似矩阵的记号:x== a*[email protected] b*[email protected] c*[email protected] 并且利用了子项对后面的模可以取余的性质及各个行地位对等,可以进行巧妙的简化计算和任意视需要更改计算顺序以达到较小的数值 。
在草稿纸上,可以写得很简洁;可以省去*1;可以配合心算,很快的求解和计算同余式 。类似的习题解答,及本例的其它解法,及利用洪伯阳的同余式记法作更简洁的一站式同余式解法描述,我写到了我的最新博文《韩信点兵公式-再次详说中国剩余定理》中,供参考 。
这里只说了模为3,5,7的情况;其实,对于任意模,又有什么不可以应用的呢?EEE 给定x,在excel中利用函数=mod(x,a)给出余数,同理一共得到105组余数a,b,c;再对结果按3,5,7(或7,5,3)分三次进行排序,于是可以检索(方便的有序的查找) 给定一组余数a,b,c,得到相应的数x 。我用此思路制作了一个excel文档,给出了对应表 。
反查亦可 。请以如下方式搜索:韩信点兵计算表 搜到后,免积分下载 。
欢迎交流指正 。谢谢 。
4. 韩信点兵 背景来源 秦朝末年,楚汉相争 。
有一次,韩信将1500名将士与楚王大将李锋交战 。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是,韩信整顿兵马也返回大本营 。
当行至一山坡,忽有后军来报,说有楚军骑兵追来 。只见远方尘土飞扬,杀声震天 。
汉军本来已十分疲惫,这时队伍大哗 。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌 。