Image

张院士谈“五猴分桃”

2020-09-14

张景中院士

猴子分桃

有一大堆桃子,这是5只猴子的公共财产,它们要平均分配。

第一只猴子来了,它左等右等,别的猴子都不来,便动手把桃子均分成5堆,还剩了1个。它觉得自己辛苦了,当之无愧地把这1个无法分配的桃子吃掉,又拿走了5堆中的1堆。

第二只猴子来了。它不知道刚才发生的情况,又把桃子均分成5堆,可还是多了1个。它吃了这1个,拿1堆走了。

以后,每个猴子来了,都是如此办理。

请问:原来至少有多少桃子?最后至少剩多少桃子?

据说,这个问题是由英国物理学家、诺贝尔物理学奖得主狄拉克提出来的。1979年春天,美籍物理学家李政道,在跟中国科学技术大学少年班同学座谈时,也向他们提出过这个题目。当时,谁也没有能够当场作出回答,可见这个题目有点难。

你能解这个题目吗?

动脑又动手

做数学题目,光凭脑子想,是不容易找到方法和得到结果的。

我们一起来动手写写算算吧!

设原有桃x个,最后剩下y个。那么,每一只猴子连吃带拿,得到了多少桃子呢?

第一只猴子吃了1个,又拿走了剩下的(x-1)个的1/5,一共得到

它走了,这里留下的桃子还有

第二只猴子连吃带拿,得到了桃子

当第三个猴子来到时,这里还有桃子

也就是又从原数中减1、再乘4/5。

现在,我们找到解题的思路了:每来一只猴子,桃子的数目就发生变化——减1、乘4/5。所以,当第五只猴子来过后,我们已对x进行5次这样的减1、乘4/5的操作了。

注意:在写的时候,每减1之后,应添个括号,再乘4/5。这样5次之后,便得到了y。所以,我们有

这一堆符号,可真叫人眼花缭乱。要是你耐着性子,一步一步整理,应当得到

这样的一个等式,也就是

从这个式子里,我们不能断定x和y是多少。不过,因为x和y都是正整数,而4的4次方与5的4次方互素,所以5的5次方整除x+4,这样我们就可以算出x至少是

5^5-4=3125-4=3121

类似地,4的5次方整出y+4,所以y至少是

方法多样

五猴分桃,有没有简单一点的算法呢?有。

狄拉克本人,就提出过一个简单的巧妙解法。据说数学家怀德海,也提出了一个类似的解法。

奇怪的是:狄拉克和怀德海都没有想到,这个问题还有一个十分简单的解法。它只用到一点算术知识,是小学生也能算出来的。

桃子不是分不匀,总要剩下1个吗?问题的麻烦,就是因为多了1个桃子。

好。你来扮演一个助猴为乐的角色,借给猴子4个桃,这不就可以均分成5堆了嘛。反正最后还剩一大堆,你拿得回来的。

现在,让5只猴子再分一次。桃子虽然多了4个,可是第一个猴子并没有从中捞到便宜。因为这时桃子正好可以均分成5堆,它拿到的1堆,恰巧等于刚才你没有借给它们4个桃子时,它连吃带拿的数目。

这样,当第二只猴子到来时,桃子的数目,还是比你没借给它们时多了4个,又正好均分成5堆。所以,第二个猴子得到的桃子,也不多不少,和原来连吃带拿一样多。

第三、第四、第五只猴子到来时,情况也是这样。

5个猴子,每一个都恰好拿走当时桃子总数的1/5,剩下4/5;而开始的时候桃子的数目是x+4。这样,到了最后便剩下

个桃子,这比剩下的y个多4个。所以得到

同样的结论,得来全不费工夫!

为什么

不妨想一想:这一借一还究竟是怎么回事?为什么一下子就把问题简化了呢?

关键在于,猴子每来一次,桃子的数目发生了什么变化?

在你没有错给它们4个桃子的时候,那情况是:每来一只猴子之后,桃子数就减1、乘4/5,来5个猴子之后,就等于对x进行5次减1、乘4/5。

你看,减1乘4/5,再减1乘4/5,再减1乘4/5,再减1乘4/5,再减1乘4/5,这一串运算多麻烦。

要是你先借出4个桃子,使每一个猴子拿走1/5,然后再把4个桃子拿回来,结果和前面完全一样。这个过程,相当于对桃子数目加4乘4/5、再减4。也就是说:减1乘4/5,相当于加4乘4/5、再减4。用字母表示,就是

不信,你算一算,两边确实是恒等的。

这样看来,猴子每来一次,桃子数的变化有两种计算方法:一种是减1乘4/5,另一种是加4乘4/5、再减4。后一种计算方法是三步,看起来好象更麻烦了。其实,多次连续进行计算就显出它的优越性来了。你看:

加4、乘4/5、减4;加4、乘4/5、减4;加4、乘4/5、减4;加4、乘4/5、减4;加4、乘4/5、减4。

这中间有四次减4、加4,互相抵消,加4、乘4/5、减4;加4、乘4/5、减4;加4、乘4/5、减4;加4、乘4/5、减4;加4、乘4/5、减4。

总效果是:

加4、乘4/5、乘4/5、乘4/5、乘4/5、乘4/5、减4。

这是一个很好算的过程,那结果可以一下子写出来:

像这样把一个运算过程,变成另一个形变而值不变的运算过程,在数学上叫做等价方法。

思考题

1. 设有m个桃子,k只猴子,每个猴子来到之后,把桃子分成k堆,还剩下r个,它吃掉r个之后,又拿走了一堆。这样k个猴子都来了之后,至少还有多少桃子?

2. 桌子上有一壶凉开水,其中放了50克糖。一个孩子跑来,把糖水倒出一半喝掉,添上30克糖,加满水,和匀,走了。这样来过5个孩子之后,壶里还有多少糖?来过很多孩子之后,壶里的糖能增加到100克吗?

附其他两种解法

解法一

这个解法摘译自哈尔莫斯的一篇通俗文章,译者是中国传媒大学的陈见柯教授。

狄拉克

狄拉克的解法可以称之为特征向量法或不动点法,如下:

假定桃子的个数为x,考虑任一猴子处理完桃子之后,剩下的桃子数量S(x)。 这个公式相对简单,即

我们称整数x是一个解,如果用算子S操作5次以后的数为正整数。换言之,我们要找满足上述条件的最小正整数解。

注意到

我们有

因此

对一切x和y都成立。这意味着如果x和y都是解,则x和y模5的5次方同余(即,x与y的差被5的5次方整除)。反之,若x是一个解,并且y跟x模5的5次方同余,则y也是一个解。

最容易想到的解,应该是对应于特征方程

的特征向量,其解为

因此最小的正整数解为

注意:不变量(不动点、特征值、特征向量)的概念,或许是数学基本元素之一。

(作者:哈尔莫斯(Halmos))

解法二

回到最开始的方程,那里要求解方程

的正整数解,这是两个未知数x,y的一次方程。我们将它化成标准形式,即得

回想起这方程的如何来的,可以发现,实际上我们选取中间一步得到的方程

来观察更可取。这意味着

是方程的一个特解,要得出方程的所有解,只需要考察对应的齐次方程

由于这两个系数1024与3125互素,所以容易得到,该齐次方程的通解为

其中k为任意的整数。从而原方程的通解为:

其中k为任意的整数。特别地,为得到最小正整数解,只需要令k=1,这就得到

(作者:林开亮)

责任编辑:郭旭晖 龚丽华
阅读
转发
点赞
评论
加载中...

相关新闻