IT Notes‎ > ‎Algorithms‎ > ‎

石头有多重

2010-05-07 下午在 Kewill 面试,有一道智力题:

有4个小孩看见一块石头正沿着山坡滚下来,便议论开了。
  “我看这块石头有17公斤重,”第一个孩子说。
  “我说它有26公斤,”第二个孩子不同意地说。
  “我看它重21公斤”,第三个孩子说。
  “你们都说得不对,我看它的正确重量是20公斤,”第四个孩子争着说。
  他们四人争得面红耳赤,谁也不服谁。最后他们把石头拿去称了一下,结果谁也没猜准。其中有一个人所猜的重量与石头的正确重量相差2公斤,另外两个人所猜的重量与石头的正确重量之差相同。当然,这里所指的差,不考虑正负号,取绝对值。请问这块石头究竟有多重?给出解题步骤

分析:
由“有一个人所猜的重量与石头的正确重量相差2公斤”得出石头重量可能的集合:
{17 ± 2, 26 ± 2, 21 ± 2, 20 ± 2},
排序后得到:
{15, 18, 19, 22, 23, 24, 28}
得到如下表单:(表中的数字是横行与纵行之差的绝对值)
  15           18 19 22 23 24 28
 17 2 1 2 5 6 7 11
 20 5 2 1 2 3 4 8
 21 6 3 2 1 2 3 7
 26 11 8 7 4 3
 2 2

满足条件:
“有一个人所猜的重量与石头的正确重量相差2公斤,另外两个人所猜的重量与石头的正确重量之差相同”
的只有 23 这一列,故石头的重量应该是23.

争议:对于 19 这一列,有两个人猜的值和19相差2,这种情况符合“有一个人所猜的重量与石头的正确重量相差2公斤”吗?
如果要严密些,则题目应该表述为:
有一个人所猜的重量与石头的正确重量相差2公斤,另外两个人所猜的重量与石头的正确重量之差相同”
Comments