12个球,其中有1个和其他11个不一样,给你一个天平,称3次,找出不一样的那个
这是个老掉牙的经典问题,在刘飞提示下我想出来了解法。这次挑战一下能否用最好的方式把解法描述清楚。
记号:
12个球编号为1、2、3……12
如果1号球可能轻,记为1L;如果1号球可能重,记为1H;可能轻可能重记为1LH。
天平左边轻记为 < ;天平右边轻记为 >; 平衡记为 ==
标准重量的球记为0
初始状态:
1LH,2LH,3LH,……12LH 共24种可能性
试验:
把6个球放在天平左边,6个球放在天平右边。假设 <。那么我们获得了状态:
1L、2L、3L、4L、5L、6L、7H、8H、9H、10H、11H、12H。
状态从24个一下子减少到12个。相当于二分法。猜想:如果这样做下去,24->12->6->3->1。共需要称4次。经过推理这样做确实没有希望。
试试另一种方法,把12个球分三组,1~4,5~8,9~12,前两组上秤:
<: 1L、2L、3L、4L、5H、6H、7H、8H
==: 9LH、10LH、11LH、12LH
可以看到,无论是否平衡,都得到了8种状态。一下子减少了2/3。猜想:此问题正好可以实现“三分法”,24->8->3->1。认准方向就可以大胆去试验了。
多啰嗦一句:如果1L在左边,但是左边重了,因为不同重量的球只有一个,与1L矛盾,1L肯定不成立,这样就排除了1L。
解法:
第一次上秤,从24种状态到8种状态:
把12个球分三组,1~4,5~8,9~12,前两组上秤:
<: 1L、2L、3L、4L、5H、6H、7H、8H
==: 9LH、10LH、11LH、12LH
都符合8种状态,pass。
第二次上秤,从8种状态到3种状态:
根据第一次的结果,8种状态有两种组合方式:1L、2L、3L、4L、5H、6H、7H、8H;另一种1LH、2LH、3LH、4LH。(8个球不能被三整除,添一个标准球0来尝试即可。)
①从1L、2L、3L、4L、5H、6H、7H、8H 称一次简化到3种状态
分三组:1L、5H、0; 2L、3L、7H; 6H、4L、8H。前两组上秤
>:5H、2L、3L
<:1L、7H
==:6H、4L、8H
②从1LH、2LH、3LH、4LH 称一次简化到3种状态
分3组:1LH、0; 2LH、3LH; 4LH、0。前两组上秤
>:1H、2L、3L
==:4LH
<:1L、2H、3H
都符合3种状态,pass。
第三次上秤,从3种状态到1种状态:
①1L、2L、3H,两个L比较即可。
②1H、2H、3L,两个H比较即可。
③1LH,和0比较即可。
都能得到1种状态,答案ok。
后记:
天才遇到难题可以直接上,像我这种平庸的人得分几步走:
1、设计合适的记号描述问题。
2、找到题目的切入点,发现本质。这道题的本质就是意识到“三分法”的存在。
3、不好表述的时候,直接抽出来变成“子问题”,和函数一样。比如本文中球的编号为了方便每次称都是从1开始的。