为什么“和尚吃馒头问题”有别的解法


我国历史上著名的珠算大师、明朝数学家程大位曾写了一本影响十分大的书《算法统宗》。这本书后来一直被流传到日本、朝鲜、以及东南亚一带。在书中能看到他精心编写的大量歌谣体古算题,“和尚吃馒头问题”便是其中之一。这道题原文是:一百馒头一百僧,大僧三个便无争,小僧三人分一个,大小和尚各几个?

这是极其浅显易懂的七言诗,能像“唱山歌”一样地背诵。假如译成白话文,它的意思就是:现有100个和尚分100只馒头,刚好分完。假如大和尚1人分得3只,小和尚3人分得1只,问:大和尚、小和尚各有多少人?本题用代数中的列方程法解,当然十分容易求得答案。但,我们也可以广开思路,想想其它的办法。

假如各人吃的馒头数都照题目所说的那样,一律乘以3,也就是说,大和尚1人吃9只,小和尚1人吃1只,那100个和尚就要吃300只馒头。这时十分容易看出,小和尚每人所吃的馒头数刚好等于人数,而大和尚每人所吃的馒头数比人数多8。如今,他们一共吃的馒头要比人数多出200,而200是8的25倍,因此马上能推算出,大和尚有25人,小和尚有75人。这种解法就叫做“扩大法”。“扩大法”有各种变化方式,上文所说的就是把馒头数扩大为3倍的办法。此外,也能采用馒头数不动,把人数扩大为3倍的解法,请你也试试看。

把着眼点变化一下,也可以用“缩小法”来处理。例如说,1个大和尚只吃1只半馒头,而3个小和尚合吃半只馒头,可不可以解出来呢?也能试试。

很明显,“缩小法”的基本思路是:和尚的人数虽不能是分数,但馒头却能剖开来吃。从这一点来看,这思路是相当合理的。

话虽这样,但是程大位本人的解法却又不一样。《算法统宗》里的算法是:100÷(3+1)=25

100-25=75

因为,程大位的思路是一种“编组法”。因为大和尚1人吃3只馒头,而小和尚3人吃了1只馒头,合并计算时,就是大小和尚4人吃4只馒头。于是,100个和尚刚好编成25组,而每一组中刚好有1个大和尚,因此马上能算出大和尚有25人。大和尚人数一经求出,小和尚人数自然不在话下了。

按照这种不寻常的“编组法”,还能把题目进一步修改如下:

100个和尚吃100只馒头,如果1个大和尚吃n只馒头,n个小和尚合吃1只馒头。问:大、小和尚各有多少人?

读者应用上面所提到的“编组法”,再注意到n+1必须是100的因子,因此一定能找出n的答案是3,4,9,19,24,49,99。一共有7种可能答案,这不是挺有趣吗?