问题
12 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13 个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
分析
初次遇到这种问题,容易分析晕,如果能够找到一种思维工具,解决起来会清晰很多。让我们从“信息”的角度来对这个问题进行分析:将球分成4 种:“黑球”、“白球”、“轻球”、“重球”:
- 在称之前,所有球都不知道是否有问题,都是“黑球”(用“*”表示);
- 排除嫌疑的球是“白球”(用“-”表示)。将“黑球”变白需要获取“信息”,方式为“用天平称”;
- 天平称了以后,被怀疑偏轻或重的球是“轻球”(用“↑”表示)或“重球”(用“↓”表示),我们要做的事情就是让“轻球”再次被怀疑“偏重”,则它是白球,反之亦然这也很好证明:举例说明,若x≥8 且 x≤8,则x = 8。
- 用“V”表示天平,例如:** V *- 表示天平左边两黑球,右边一白一黑。
求解
有了思维工具了,求解就方便了:
初始时候我们有12 个黑球,拿出8 个来称:**** V ****
- 若平,8 个球变白。还剩4 个黑球,则称 ** V *-
- 若平,则3 个黑球变白,剩下一个黑球,称* V -,即得出结果。
- 若左轻,即:↑↑ V ↓ - ,那么再称 ↑ V ↑,即得结果。右轻情况以此类推。
- 若左轻,即:↑↑↑↑ V ↓↓↓↓,那么再称↑↑↓ V↑↓-
- 若平,剩下↓↓↑,再称 ↓V↓,即得结果。
- 若左轻,剩下↑↑↓,再称 ↑V↑,即得结果。
- 若右轻,剩下↑↓,再称 ↑V-,即得结果。
- 若右轻,以此类推。
- 若平,8 个球变白。还剩4 个黑球,则称 ** V *-
讨论
在我高中的时候,同桌非常聪明,做题画的乱七八糟的居然都能算对,很多同学思维能力强,记忆力好,对这种作法引以为荣。
然而在现实生活中,个人英雄是不行的,需要团队的合作。如何找到“思维工具”,将问题清晰的表述出来,比去解决一个具体问题更为重要。有了工具大家都能用,若所有人都提供很多工具,工具之上又可构建更强工具,那么“巨人肩膀上的巨人”就出现了。
作者:Silver 原文链接:http://gpww.blog.163.com/blog/static/11826816420099792346949/
其他文章:
连载1:卡特兰数(Catalan)
连载2:序列 ABAB对应字符串集合
连载3:最长公共子序列
连载4:计算字符串的相似度
连载5:寻找符合条件的整数
连载6:数组循环位移