12个球称三次找出异常一球的解法

有十二个乒乓球特征相同,其中只有一个重量异常,现在要求用一部没有砝码的天平称三次,将那个重量异常的球找出来。

在面试题中遇到了这样一个思维题,题目看起来第一感觉是比较简单的,却没做出来,网上找了答案后发现自己做不出来真的很正常:(。过程还是比较繁琐的,整理如下:

将球都好编号,分别为a b c d, e f g h, i j k l,取出abcd, efgh(随机的)

第一种情形:

如果重量相等,则说明所求在 ijkl 中,

称量 i j ,

如果相等,比较 a k ,如果a=k,则所求为 l ;如果ak不等,则所求为 k 。

如果不等,比较 a i ,如果a=i,则所求为 j ;如果不等,则所求为 i 。

12个球称三次找出异常一球的解法_第1张图片

第二种:

如果 abcd 轻,

在efgh中取出 fgh ,替掉abcd中 bcd,从ijkl中取出 ijk 个放入 e 中填补空位:

如果afgh轻:则说明所求在a或e(也可以这么想,如果所求在a或e,那就是afgh轻),拿 e 和除 a 以外的任意一球比较,如果重量相等,则所求的球是 a ;如果不等,则所求的球是 e 。

如果afgh重:说明所求在 fgh 中,且所求较重;比较 f g ,等重则所求为 h ;不等则重的为所求。

如果一样重:说明所求在被踢掉的 bcd 中,且所求较轻;以下同afgh重的情形。
12个球称三次找出异常一球的解法_第2张图片
第三种(图示类似于第二种,就不画了):

如果 abcd 重,

在efgh中取出 fgh ,替掉abcd中 bcd,从ijkl中取出 ijk 个放入 e 中填补空位:

如果 afgh 重:则说明所求在a或e,拿 e 和除 a 以外的任意一球比较,如果重量相等,则所求的球是 a ;如果不等,则所求的球是 e 。

如果afgh轻:说明所求在 fgh 中,且所求较轻;比较 f g ,等重则所求为 h ;不等则重的为所求。

如果一样重:说明所求在 bcd 中,且所求较重;以下同afgh轻的情形。

欢迎关注我的公众号——日更的小易
12个球称三次找出异常一球的解法_第3张图片

你可能感兴趣的:(数据结构)