您现在的位置是:首页 >

什么叫做“韩信点兵”V5

火烧 2016-12-15 03:33:04 1044
韩信点兵是一个很有趣的猜数游戏,如果你随便拿一把棋子(数目约在100粒左右),先3粒3粒数,不满3粒时记下余数;再5粒5粒数,不满5粒时记下余数;最后7粒7粒数,也只把余数记下来。然后根据每次的余数,就可以知道你原来拿的棋子总共有多少。 例如,3个一数余1

韩信点兵是一个很有趣的猜数游戏,如果你随便拿一把棋子(数目约在100粒左右),先3粒3粒数,不满3粒时记下余数;再5粒5粒数,不满5粒时记下余数;最后7粒7粒数,也只把余数记下来。然后根据每次的余数,就可以知道你原来拿的棋子总共有多少。

例如,3个一数余1粒,5个一数余2粒,7个一数余2粒,那么原有棋子是多少呢?

它的算法其实很简单,而且在我国古代就有。宋朝周密叫它“鬼谷算”或“隔墙算”;杨辉叫它“剪管术”;而“韩信点兵”是比较通行的名称。至于它的算法,在《孙子算经》上早有说明,后来在宋朝经过数学家秦九韶的推广,又发现了一种算法,叫做“大衍求一术”。这就是国际上所称的“孙子剩余定理”或“中国剩余定理”,是数学史上极有名的问题。

那么到底怎样来计算呢?它可以简单地由下式来表达:

a×70+b×21+c×15-105,

其中a、b、c分别为3个、5个、7个一数的余数。如果得出的数字还是比105大,就再减去105,一直到得数比105小为止。

因此你可以很容易地知道,前面问题的答案是

1×70+2×21+2×15-105=37(粒)。

那么在“韩信点兵”里为什么要3个一数,5个一数,7个一数呢?用其它的数可以吗?要回答这个问题,我们先来研究一下“韩信点兵”问题的解法“70a+21b+15c-105”。

我们先来看一下70、21、15、105这4个数和3、5、7之间的关系:

(1)70=2×5×7,70=3×23+1,所以70是5和7的一个公倍数,它被3除后余数是1。

(2)同理,21是3与7的一个公倍数,它被5除后余数是1。

(3)15是3与5的一个公倍数,它被7除后余数是1。

(4)105=3×5×7,是3、5、7的最小公倍数。

根据上面的这些关系,“70a+21b+15c-105”确实是所求的得数。理由如下,因为

70a+21b+15c-105

=(3×23+1)×1+(3×7×2)+(3×5×2)-(3×5×7)

=3×23×1+1×1+3×7×2+3×5×2-3×5×7

=3×(23×1+7×2+5×2-5×7)+1,

所以,70a+21b+15c-105被3除的余数是1。根据同样的道理,这个数被5除后的余数是2,被7除后的余数是2。

那么“韩信点兵”里为什么要用3、5、7这三个数呢?我们知道,3、5、7中的任意两个数的最大公约数都是1,也就是说是两两互素的。于是就可以找到这样一个数,是3、5、7其中两个数的公倍数,而被另一个数除后余数是1,类似70、21、15。这也是对于“韩信点兵”中的三个数的要求。

那么不是两两互素的数,是不是就一定找不到类似70、21、15的数呢?例如4、6、7这三个数,4与6不是互素的,它们的最大公约数是2。而6与7的任何一个公倍数都是偶数,被偶数4除后的余数也一定是偶数,而不可能是1,所以是找不到与70、21、15相当的三个数的。因此在“韩信点兵”里就不能用。

我们也可以不用3、5、7这三个数,而换成其它两两互素的数,如2、3、11。这时的计算式是“33a+22b+12c-66”。不信的话,你可以用上文中的例子再试一下,看看结果是不是还是37粒。

关键词:韩信点兵 孙子剩余定理 中国剩余定理 两两互素 最小公倍数 公倍数

永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码