称球问题思路分析与理论解析

【问题描述】

问题1:有十二个外表相同的球,其中有一个坏球,它的重量和其它十一个有轻微的(但是可以测量出来的)差别。现在有一架没有砝码的很灵敏的天平,问至少几次才能找出那个坏球,并知道它比标准球重还是轻。

问题2:9个球,其中8个球质量一样,一个球质量偏重,问至少称几次,能找出偏重的球?

==============================================================

这两个问题就是经典的称球问题。对于这个问题的解法,网上有非常多的论述。本文的核心,不在于结果如何,而在于,我们如何能够想到这样的解。对于第一个题,我们大家都知道,最少次数的称法,是每组四个球,我们就问,这四个球一组的结论是如何得到的?为什么不是三个球一组?第二次称球的时候,我们将天平左侧三个球移动到了右侧,为什么大家会想到这样的思路。然后再说的广一点,这类问题,如何着手,有没有什么窍门,包括分组,包括每次称球的策略。这个是本文要论述的核心问题。

本文的部分思路来自于《称球问题——经典智力题推而广之三》一文,不过该文章貌似对这个问题说的不清晰,核心部分有些语焉不详的感觉,还是我没有读明白的原因。不过我相信这篇文章的作者已经对称球问题的理论很熟悉了。但是对于一般读者而言,这篇文章的论述还是过于晦涩了一点。

============================================================

对于称球问题,用到的道具是天平,对于天平,我们可以知道,一次称量,天平只能表示三种状态,即【左侧偏重】,【右侧偏重】以及【左右平衡】,再没有第四种状态了。

而对于整个称量策略,可以表示成一棵树,称之为策略树这课树的高度,即为最少称量次数

由于天平只能表示三种状态,每种状态对应于该树的一个分支,所以,这个树最终会表示为一个三叉数。

对于一个问题,我们为了方便描述,首先需要对每个球进行编号。首先先论述【问题1】,问题1中有12个球,坏球的轻重未知,因此可能有24中情况,即

【1号为坏球,且较轻】,【1号为坏球,且较重】

【2号为坏球,且较轻】,【2号为坏球,且较重】

……………………

【12号为坏球,且较轻】,【12号为坏球,且较重】

然后为了描述方便,将这24中情况分别简记,比如

【8号为坏球,且较轻】 =====》 8-0

【6号为坏球,且较重】 =====》 6-1

即X球较重记做X-1,较轻记做X-0,则24中状态可以记做

1-0,1-1,2-0,2-1,…………12-0,12-1

总情况是24中是一定的,也就是树根对应了24中状态。由于最少称量次数代表的是树的高度。因此要是称量此处最少,需要让树的高度最小。最终我们要称出那个球是次品球,即树的叶子节点只对应一个状态。要使树的高度最小,需要将这个策略树建成一个平衡三叉数即使得每次称量的三种状态,每种状态对应的情况数要尽可能相同。这个是称量问题的核心思想,也是唯一的一个核心思想。掌握这个核心思想,所有的称量问题,万变不离其宗。

============第一次称量==============================

由于总共有24种情况,第一次称量分为三种状态,每种状态则对应8种情况。我们先随便将24中情况分为三组,当然不是所有的【分组方法】都对应称量方法,由组合数学知识也能发现,24种状态分为三组8状态的数目和12个球分为三组4球的数目是不同的,当然,这一步的时候,我们还不知道要分为三组4球。到底什么样的分组方法对应称量方法,以及原理如何,目前还没有深入研究。

我先给出我选的一组分法

第一组 1-0,2-1,3-0,4-1,5-0,6-1,7-1,8-0 ------------天平左侧重

第二组 1-1,2-0,3-1,4-0,5-1,6-0,7-0,8-1 ------------天平右侧重

第三组 9-0,9-1,10-0,10-1,11-0,11-1,12-0,12-1 ------------天平平衡

然后我们从这种分组方法里还原出称量方法。

当天平左侧重的时候,能得到结论可能是1号球偏轻,当天平右侧重的时候,能得到1号球可能偏重,于是能得到结论,1号球一定在天平右侧,同样可以得到2号、4号、6号、7号球在天平左侧,1号、3号、5号、8号在天平右侧。当天平平衡的时候,9号可能重可能轻,则9号球一定不在天平上,即该种分组方法对应的称量方法如下:



然后化为策略树的形式,如下:



==========第二次称量=======================================

---------三叉数的左重分叉---------------------------------------

每种状态包含8个情况,然后再对每个状态对应的情况进行分组。我们以左重状态对应的情况为例来进行说明.

左重状态有8种情况,每次称量为一个平衡三叉数,所以,要平均分为三组,则有两组要包含3种情况,一组包含2种情况。

对左重状态对应的情况 1-0,2-1,3-0,4-1,5-0,6-1,7-1,8-0进行分组,我随便选择了一种分组方式,情况如下:

第一组: 1-0,2-1,3-0 --------------天平左侧重

第二组: 4-1,5-0,6-1 --------------天平右侧重

第三组: 7-1,8-0 --------------天平平衡

然后仍然同第一步,将分组方法里还原出称量方法。1号球较轻的时候天平左侧重,则1号球一定在右侧,2号球较重的时候天平左侧重,则2号球一定在天平左侧,……,7号球较重或8号球较轻的时候,天平平衡,则7与8一定在该次称量的时候被放到外面了,于是,

本次称量,左侧有球2,5,右侧有球1,3,4,6,发现左右貌似不能平衡啊,怎么办?从9~12号球中拿两个凑数,这凑数的两个只是为了保持天平平衡用的,于是,该次称量变为了:



这次称量的方法是,将7与8号球拿到外面,将5号球从天平右侧移动到天平左侧,将4与6号球从天平左侧移动到天平右侧,然后将9与10号球放到天平左侧。这个过程很复杂,但是只是看着复杂,与情况的分组方式确是一一对应的。

--------三叉数右重分叉-----------------------------------------

第一次称量的右侧,在第二次下的分组情况与第一次称量左侧在第二次下分组是相似的,右侧不论述,论述第一次下平衡状态的分组情况:

-------三叉数平衡时分叉----------------------------------------

对平衡状态对应的情况进行分组,9-0,9-1,10-0,10-1,11-0,11-1,12-0,12-1,仍然分为3,3,2的形式,

我随便选择了一种分组方式,情况如下:

第一组: 9-0,10-0,11-1 --------------天平左侧重

第二组: 9-1,10-1,11-0 --------------天平右侧重

第三组: 12-0,12-1 --------------天平平衡

相同方式进行分组解码,9轻的时候天平左重,则9在右侧,10轻的时候,天平左重,则10在右侧,11中的时候天平左重,则11在左侧,天平平衡的时候,12不知轻重,则12没有在天平上,然后天平左侧有11,右侧有9,10,不平衡,然后随便选场外的一个球(除了12)补上,则


============================================================

第三次称量就不再继续描述的,原理同上,下面是一个完整的称量策略树,有兴趣的,可以尝试将这个策略树还原成称量方法。



===================================================================================

开始的第二个问题,解决方法和前面论述相似,不过由于已经知道坏球是较重还是较轻了,我们假设较重,于是,9个球,只有九种情况,分别为

1-1,2-1,3-1,……8-1,9-1

然后分为三组这个由于状态数和球数目是相同的,因此,每个策略树对应一个称量方式,和前面那个,不是所有的策略树都对应一种称量方式的问题不同。然后我随便给一个策略树:


可以按照前面的方式将其翻译为称量方式。此处不再赘述了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值