什么叫做“韩信点兵”V5
韩信点兵是一个很有趣的猜数游戏,如果你随便拿一把棋子(数目约在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粒。
关键词:韩信点兵 孙子剩余定理 中国剩余定理 两两互素 最小公倍数 公倍数
- 上一篇
为什么大小不超过2n的n+1个不同的自然数中必有两个数是互素的V5
1959年夏天,保尔·爱尔特希用“为什么大小不超过2n的n+1个不同的自然数中必有两个数是互素的”这一道题,来考当时年仅12岁的匈牙利数学家路易斯·波萨。保尔·爱尔特希是匈牙利的科学院院士,是世界上最多产的数学家之一,也曾是我国《数学研究与评论》杂志的一位
- 下一篇
为什么中国剩余定理可用于计算机编码!
我们已经知道了“中国剩余定理”,即“韩信点兵”问题,它是中国古代数学中的一项重大成就,其内容属于数论中的一次同余数组的解法。而这一古老的知识,现在在计算机编码方面也找到了新的用途。 “韩信点兵”问题的答案可以有很多,它们之间都相差105(即3×5×7),但