一道有趣的智力题
题目:有12个外观完全一样的球,其中有一个球和其他球的重量不一致,如何使用一个天平称3次得出不一致的球是哪个?
笔者看到这题就立马想到将球分成3组,将其中的两组进行比较,然后如果不相等,就将重的那组进行两两划分,在比较,在将两个重的进行比较在进行比较。如果相等则将余下的那组进行比较。相信这里有不少园友发现不是比重,也有可能轻。
题外话:这里写篇博文,就是要告诫作者自己,细心点,做一个程序员这么粗心大意可不是什么好事情。尽量每次想问题注意周全。是要自己时刻提醒要细心。
当然,前一刻还在嘲笑自己不细心,但是细心做下来,发现此题也不容易做。
笔者第二个想到的方案是:
分为4组,每组3个。开始第一次称:将其中随意两组进行比较。
如果不相等,就将重的那组与另外两组(可以推断这两组小球都是正常的)中随便一组进行比较,
如果相等就说明第一次比较轻的那组中有一个球是轻的,然后只用将三个球中两个球拿来比较,就立马能知道哪个球是轻的。
如果不相等,那就说明这组中有一个球是重的,同上方法可以找出重的球。
如果相等,就说明另外两组不相等。此时将相等的一组与不相等的一组进行比较,如果不相等,那么问题解决方法就像上面一样解决。如果相等就麻烦了,因为已经比较了2次,无论如何也不可能1次比较,就能分辨出剩下那组中哪个球是轻是重。
所以第二个方案也不行。
到这里笔者觉得还是从分三组进行考虑,分四组如果运气不好就不能得出结论。
第三种方案
分为3组,每组4个。开始第一次称:将其中随意两组进行比较。
如果相等,就说明剩下的那组有问题。这里拿没有问题的8个球中的3个与有问题组中4个球的任意3个进行比较
如果相等,就说明有问题组的剩下那个球有问题。
在将剩下那个球与没有问题的球进行比较,就知道轻重的关系了。
如果不想等(这里可以知道有问题的球是轻是重的关系了),就说明从问题组拿出的3个球就有问题。
将这3个球随意拿出2个球进行比较
如果相等,就说明剩下的那一个球有问题,并且由前面得到的轻重关系,可以判定此球是轻是重。
如果不相等,就通过上面轻重关系,直接找出问题球。
如果不相等(已知两端的轻重关系),说明问题球就在这8个球中,另外四个球是没有问题的。
那么此时就可以从天平中一端拿出3个球,在补防3个没有问题的球。
如果相等,就说明刚才拿出的3个球是有问题,同时根据上面得到的轻重关系,就很容易从三个球中找到问题球,并判断是轻是重问题。
如果不相等
情况一:此时的轻重关系与第一的轻重关系一样(举例子,第一个右边的4个球重一些,拿出3个球,在放入3个没有问题的球,还是右边重,那么就可以推测重的那一端剩余的那个球有问题,或者是轻的那4个中有一个有问题)分析到这里又出问题了。
这里笔者遇到了瓶颈了,没有办法了,笔者思考一会没有结果,就求助了网上。
第四种方案
分为3组,每组4个。开始第一次称:将其中随意两组进行比较。
如果相等,就说明剩下的那组有问题。这里拿没有问题的8个球中的3个与有问题组中4个球的任意3个进行比较
如果相等,就说明有问题组的剩下那个球有问题。
在将剩下那个球与没有问题的球进行比较,就知道轻重的关系了。
如果不想等(这里可以知道有问题的球是轻是重的关系了),就说明从问题组拿出的3个球就有问题。
将这3个球随意拿出2个球进行比较
如果相等,就说明剩下的那一个球有问题,并且由前面得到的轻重关系,可以判定此球是轻是重。
如果不相等,就通过上面轻重关系,直接找出问题球。
如果不相等(已知两端的轻重关系),说明问题球就在这8个球中,另外四个球是没有问题的。
这里就是将天平一端拿出3个球,在从这端从另外一端拿三个球,另外一端不放三个没有问题的球。
情况一:如果这里不相等,而且天平没有发生变化(举例子:从重的那一侧拿走3个球,在从轻的那一侧拿来3个球,在将轻的那侧补3个球,轻重关系没有发生变化。就说明有问题球是重的那一侧中剩余的球,与轻的那侧剩余的球。为什么这么说,如果说是从轻侧那里拿过来的三个球有问题,只可能使天平发生变化)那么这里就可以推断是两端没有剩余的那个球有问题,并且知道这两个球的轻重关系,在将其中一个球与正常球进行比较就可以得到结果了。
情况二:如果相等。就说明拿出来的三个球有问题,并且从上面可以知道这三个球是轻重问题。然后就很好找出问题球来。
情况三:如果不相等,并且使天平发生变化,就说明是从另一侧拿过来的那三个球出了问题,并且知道轻重关系,就立马得出来了。