最近在朋友圈流行了这样的一个小学数学题,当然结果是“出乎意料”。看似简单的结果,儿童一般能够做对,而大人却几乎很少有人做对,分析下来,原因无非是惯性思维下的粗心导致的完全错误。今天我们就一起来分析下思考过程。
看图可知,猫=X 猫头=Y 猫爪=Z,即
3X=30
X+Y+Y=20
Y+Z+Z=9
所以 X=10 Y=5 Z=2
故结果 Y+Z+X=5+2+10=17
一般大多数的第一结果可能都是这样!等等,注意最后一个应该是Y+Z×X=?
心中一百只草泥马奔过,再算一遍
Y+Z*X=5+2*10=25
对不起还是错的,因为猫爪从2只
变成了1只
所以应该是Y+Z/2*X=?
心中一千只草泥马奔过,再算一次
Y+Z/2*X=5+2/2*10=15
对不起还是错的,因为最后一只猫少一个爪子,所以应该是Y+Z/2*(X-Z/2)=?
心中一万只草泥马奔过,再算一次
Y+Z/2*(X-Z/2)=5+2/2*(10-2/2)=14
其实大家会发现这个题目非常的“坑爹”,不就是故意折腾人么。但是在很多系统中,开发看到测试提出的Bug也是这样的感觉。作为开发就和大人做这道题一样,看到问题往往会以自己的惯性思维来理解,理所当然地认为就这样就对了,导致真相就被隐藏了。
而儿童一般能够做对这道题的原因,一方面是老师有引导性地提示细心的重要性,另一方面是长期踩雷积累的经验。这也是测试人员和开发人员的区别之一。