
弘毅问我一个小学三四年级的问题。
请移动一根火柴棒,使得等式成立:

刚开始我也是一脸蒙圈,但是十几分钟后我找到一个答案:
9-3=6.
对于一个数学博士花了十几分钟才找到答案,我的内心是拒绝的!
我还是我吗?我是谁?我在哪?
冷静下来后,我在网上查了一下,出现的全是:
史上最难小学奥赛题;小学数学题,以下10道全答对智商至少140......
搞笑的是,几乎所有媒体都用了如下语句:
“学历越高越做不出来!”
这让我一度怀疑自己是否真的读书读傻了。
于是我暗下决心要全面,系统的解决这个问题。认真思考了一个小时后,我发现这里面还真的是别有洞天。
作为一个数学教育的问题,这个堪称经典!
因为这个问题是如此的有层次感,以至于可以从小学,一直做到初中,高中,大学乃至工作。
可谓童叟无欺,老少皆宜!
对于成年人来说,离简单的加减乘除计算早已久远。因此第一次看到这个还以为就是个简单的加减问题,而这实际上是个有关想象力的问题。
因此媒体们说的学历越高越做不出来是有一定道理的。
下面我来详细解读一下,这个题目应该怎么做?
首先这里的数字是七段式的电子数字(digital number),每个数字都是在数字8的基础上减少部分笔画。因此8是由七段火柴棒构成,其它数字都是少于七根。

具体每个数字如下:

1. 每个数字移动一根变成什么数字
需要想象力的地方体现在这里。
实际上,仔细思考后,我们可以将所有数字的变动关系图给画出来。
这实际上是数学一个分支:图论,的常用技巧。

在上图中,任何两个数字间有线相连则表示这两个数字间存在移动一根就可变成对方的关系。
不带箭头的线表示,从起点到终点不需要加减笔画;带箭头的线表示,从起点到终点加了一笔,反过来从终点到起点就是减了一笔。
从图上可以看出,8,0,9,6这四个数字是两两相互变化的,因此题目涉及这4个数字的会更难一点,因为变化的可能更多了;而出现4,7,1的就很简单了,变化太少了。
2. 运算符号的变动
首先加减乘除这四个运算符号如下图:

因此,移动一根火柴棒,只有可能是加减相互变,乘除相互变。
有了这两步的思考,问题就有了系统而全面的解答方式。
3. 全面系统的解答
先举个例子,比如本题的9-9=5.

step 1 找出各个数字的变动集合
找到各个数字在数字变动关系图中它可能变动的数字和它自己构成一个集合。
比如,9对应的是集合, 而5对应集合是
。
step 2 找出运算符的变动集合
把运算符号对应的变动集合也找出来。
比如这里的➖对应的集合是。
step 3 连接变动数字与运算集合列出不定算式
把数字集合与运算集合以及等式连接起来,构成一个不定算式(可以理解为是不定方程,但是我们不用字母表示)。
比如这里的9-9=5这个火柴等式,对应的不定算式就是。
step 4 求解不定算式并验证
首先,对于数字9变0或者6时,由于变动的一根就在本数字内,不会影响其它数字。
因此若这个变动无法使等式成立,则对数字9的这两个变动可能就用完了。
于是不定算式化简为
同样的操作过程,对数字5再处理一遍。不定算式再次化简为:
然后,这里从最后一个数字开始考虑:
8-3=5;
9-3=6;
最后,拿这两个等式回去验证一下。
于是这两个就是最后的正确答案。
因此,表面看这个题目对于一二年级的小朋友而言就是一点想象力加简单的加减乘除运算而已。
实际上, 真正的完全解答是要一定的逻辑能力,而且涉及对集合,不定方程以及操作看成算子(因为涉及到不同操作的独立性等),图论等基本思想和概念的比较粗浅的应用。
4. 以数学教育方式打开
下面我从数学教育的方式,来解读这个问题是如何的实用,从小学,初中一直到高中,大学甚至毕业工作后都有其正确的打开方式。
- 小学三年级以前的小朋友
这是最适合他们的,家长摆好等式,小朋友来解题。
其实,这也是很好的亲子活动。有几点要注意的是:
a. 家长如何快速摆出合适的火柴题目呢?
很简单,想它的逆过程就好。
即你脑子里想个正确的等式,比如3+6=9,然后在这基础上移动一根使得它是错误的等式,这可以是3+6=0,2+6=9等等。
b. 如何适当的引导小朋友?
主要讲每个数字和运算符可以变成什么数字和运算符,剩下的让他自己想,留足时间。
为了提醒小朋友形成有效的联想,可以先试试更简单的。比如

只要求给出一个解即可,千万别要求给出所有解,现阶段还做不到。
- 小学高年级
加大题目难度,比如位数变大,可以考虑两位数,三位数以及多个运算符。
比如,

- 初中生
对于初中生,可做一个由罗马数字改编的移动火柴问题。
让他们熟练代数的思想和本质。

- 高中生
要求给出一个全面,系统的解答思路,要求给出所有解。
- 大学生
要求给出一个全面,系统的解答思路,要求给出所有解。并用python,写出解题思路的代码,这是是一个很好的编程大作业甚至项目。
- 互联网工作
说得更远一点,即使你毕业参加工作了。假设你是在互联网行业,这依然是个很有意思的问题。
你可以从创业角度,开发一个这样的app, 实际上目前已经有人开发了。
另外你也可以从产品经理的角度来考虑这个问题,比如设计一套科学的算法来评价你给出的算式的难度系数,让用户从易到难来闯关。