12球太少,我3次能称14球,不相信?我还4次称41球,5次122球……

原创 2008年03月03日 06:21:00
本文原发表于我在JavaEye的技术部落格

流传的题目很简单,12个乒乓球(或金币之类的)其中一个是次品,重量与其他球不一样(但是不知是轻了还是重了),给一个天平,看几次可以称出来哪个球是坏球。

这个题目很久以前在大学的BBS上发表过解法,现在找不到了,重新写一遍也不费劲。

实际上是可以称14球的,下面是解法(设为A1-A14)。
注意,14球的前提是有多一个标准球A0。 否则只能称13球。

A0-A4 vs A5-A9
如果相等,则坏球在A10-A14这5个球中。

5球(重新记做A1-A5外加一个A0为标准球)的称法如下:
A0,A1 vs A2,A3
如果相等,则坏球是A4或A5,取其中一个与A0再称一次即可判断(这个不用说了,人人都知道怎么称)。
如果不等,假设A0,A1 > A2,A3(<的话,下面的判断都反一反即可),则再称一次:
A2 vs A3
如果相等,则坏球是A1,否则A1就是好球,坏球在A2、A3中,根据上一次称量结果可以判断出,坏球比标准球轻,所以A2 vs A3的结果,轻的那个就是坏球。

如果第一次称量不等,则坏球在A1-A9这9个球中,并且你知道一个不等关系,我们假设是A0-A4 > A5-A9(<的话,下面的判断都反一反即可)。

然后测A1,A2,A5 vs A3,A4,A6
如果相等,则坏球在A7,A8,A9中,并且可以推导出其中轻的那个是坏球,再称一次肯定能找出坏的那个。
如果A1,A2,A5 > A3,A4,A6
则坏球在A1,A2,A6中,并且可以推导出A1,A2 > A0,A6
反之坏球在A5,A3,A4中,并且可以推导出A5,A0 < A3,A4
不难看出这两种情况实际是等价的,只需比较两个同处一侧的球就可以判断哪个是坏球了。


如果没有标准球A0的话,那第一次称量就不能5对5了,只能4对4,所以最多只能称13个球。第一次相等的情况跟前面完全一样,如果不等,就是那 8个球有问题,比前面的9个还少一个,所以你肯定可以称出来。那么为什么常见的题目都是12球呢?估计最初流传时很少有人真正从理论(信息论)上理解这个 题,所以答案都是凑出来的,自然很难做到最优化。

但是如果掌握了理论,这个称球问题就可以推广,比如4次最多可以称量27+14=41个。前提也是你多一个标准球,这样第一次称量就是14 vs 13+1,如果相等,坏球就在剩下的14个里,就转化为了前面描述的14球称量问题。如果不等,则坏球在27个里,通过合理调配,你肯定可以把它们区别成 3组分别9个,通过一次称量判断出坏球到底是在哪9个球中。因为一次称量有3种状态,可以把一堆球分成3组。以下每次都是3组1分,所以27=3的3次方 就是表示3次称量就可以区分出来了。

不难看出,如果5次的话,可以最多称量27*3+41=122个,以下可以逐级类推,有兴趣的同志可以求出它的公式。

最后是一个思考题,既然可以3个一组分,为什么3次称量只能称14个而不是27个呢?

思考项目 求1+2的2次方+3的3次方+4的4次方+5的5次方+6的6次方的值。(异种循环嵌套)

/*   * Copyright (c) 2014, 烟台大学计算机学院   * All rights reserved.   * 文件名称:test.cpp   * 作    者:刘畅    * 完...

12个球用天平称3次的问题

12个球,其中有1个和其他11个不一样,给你一个天平,称3次,找出不一样的那个    这是个老掉牙的经典问题,在刘飞提示下我想出来了解法。这次挑战一下能否用最好的方式把解法描述清楚。 记号: ...
  • mayao11
  • mayao11
  • 2012年04月03日 17:57
  • 681

C语言 12个球称3次 找出其中一个坏球

#include #include #include #include /* 12个球 其中有一个球是坏球,坏球特征:可能较重,可能较轻,但是重量不与好球相等 请用if else...

【3次称12个球】12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。

12个球大小均相同,其中有一个重量和其他不同(轻重未知),现可用物品只有一个没有砝码的天平,你能称3次找出这个不同的球吗? 天平的状态有三种:平衡,左边重和右边重。如果只是用平衡和不平衡两种...

有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称? .

上次去面试微软的实习生,面试的人问了我个问题。有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称?当时,我就先犹豫了下。先问了他:次品不知道是轻还是重吗?他告诉我不知道。我就犯嘀咕了。这个...

有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称?

上次去面试微软的实习生,面试的人问了我个问题。有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称?当时,我就先犹豫了下。先问了他:次品不知道是轻还是重吗?他告诉我不知道。我就犯嘀咕了。这个...
  • Kaiwii
  • Kaiwii
  • 2012年09月27日 18:10
  • 1316

有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称?

上次去面试微软的实习生,面试的人问了我个问题。有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称?当时,我就先犹豫了下。先问了他:次品不知道是轻还是重吗?他告诉我不知道。我就犯嘀咕了。这个...

【华为OJ】【031-求小球落地5次后所经历的路程和第5次反弹的高度】

【华为OJ】【算法总篇章】【华为OJ】【031-求小球落地5次后所经历的路程和第5次反弹的高度】【工程下载】题目描述假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次...

poj 1013 Counterfeit Dollar 已知12个球中有1个重量与众不同,用3次找出此球,并判断重量轻重

Counterfeit DollarTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 27975 Accepted: 8755Desc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:12球太少,我3次能称14球,不相信?我还4次称41球,5次122球……
举报原因:
原因补充:

(最多只允许输入30个字)