01月 14th, 2010用草稿纸构造12球问题的解
12球问题,大家都知道吧?
不妨再描述一下题目:
12个球中,11个好的,1个坏的。坏球的质量和好球不太一样,偏轻或者偏重。
现在要求用一台天平,称3次,找到这个坏球。如果可以的话,并告知这个球是偏轻还是偏重。
很早以前就看过这个题目,解法很是诡异,反正是一边4个球,然后怎么组合一下……从来没有记住过。当时一直以为发现这个解法的人是一个绝对的天才。
不过,今天从一本书上看到了这个解法的构造方式。换句话说,这个问题,其实并不是什么灵光一闪的结果,或是推理帝的神作。
下面就来介绍这种从一张空白草稿纸开始,看上去有些机械化的的解法构造。
==========分割线==========
数学内容
不喜勿入
==========分割线==========
首先,我们来分析一下,3次称重实现找出坏球的可能性。
毕竟,如果这是一个不可解的问题,那么,一切的尝试都是没有意义的。
(当然,这个论断,很多民科可能并不认同)
一次称重能带给我们的信息:
左边重,右边重,或者两边一样重。
总共3种情况。
3次称重的话,总共可能得到3*3*3=27种结果。
从图论的角度来看就是,一棵度为3,深度为3的树,最多可以有27片叶子。
那么,12只球,算上轻重两种可能,共24种情况。
显然,如果我们把这24种情况分别映射到那棵树的27片叶子里,
我们就能通过从根节点出发,3次分支选择,到达某片叶子,然后得到结论。
好,既然确定了思路,下面就来介绍如何获得这个解。
首先,我们将那27片叶子编码,
简单点说就是把一个3位的3进制数,从000到222依次写下来。
(这里我的建议是,每个数字都竖着写,高位在上,低位在下,从左到右,一顺铺开)
呃,别急……似乎我们在使用天平的时候,似乎更加习惯这样的记号:
左边重:1
一样重:0
右边重:-1
而不是从0到2。
不过,这个问题很好解决,我们可以将0~2依次映射到-1~1
写完以后,我们可以发现,这一组数,关于000有着某种对称,下面的图是“沿着000对折”以后的结果:
0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 1 -1 0 1 -1 0 1 -1 0 1 -1 0 1 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 1 1 1 0 0 0 -1 -1 -1 -1 1 0 -1 1 0 -1 1 0 -1 1 0 -1
发现没有,下面一排的数字,分别是上面一排的对偶,所有-1都成了1,1都成了-1,当然,如果可以的话+0变成了-0。
那么,问题似乎可以化简一下,我们只考虑坏球偏重的那种情况。如果偏轻的话,只要对应到对偶的那片叶子就好了。
这样接下来的任务就是把12颗球(记作ABCD好了)对应到上面那排数字上好了。
于是有:
0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 1 -1 0 1 -1 0 1 -1 0 1 -1 0 1 A B C D E F G H I J K L
唔,似乎最后那个111没有用到?那就不要管他了……
为了让结果可以操作,我们需要让每一行的1,0和-1都是4个(就不要管111那一列了)。
先数一下,每行的数码的个数,方便后面的调整。
-1 0 1 百 0 4 8 十 3 4 5 个 4 4 4
嗯,让4个百位的1变成-1,1个十位的1变成-1就好了。
这里说一下调整的方法,要调整某一列,就让它变成它的对偶值就好。这样另外一种轻的情况就是原来的数值。
不过,这里调整的时候,可能需要简单的凑一下数据,对照第一组提供的两行编码试一下,不会太困难。
具体的调整方案很多。
一种方案是:
C,(H,J),(G,K),(F,L)。后面3组括号里,任选2组,5个符号。
或者只调整4个符号:
L,I,然后(H,J),(G,K)任取一组。
这里就取
C,H,J,G,K
于是我们得到新的编码:
0 0 0 0 1 1 -1 -1 1 -1 -1 1 0 1 -1 1 -1 -1 1 0 0 0 -1 1 1 -1 0 1 -1 0 -1 1 0 -1 1 0 A B C D E F G H I J K L
对12种可能编码以后,我们就要从这个编码反推回称重的方案了。
这样,先写下3行空格,每行8个位置,就像这样:
__ __ __ __ X __ __ __ __
__ __ __ __ X __ __ __ __
__ __ __ __ X __ __ __ __
然后,依次把字母填上去,遇到1就填左边,-1填右边,0不管。譬如先填B的01-1就成这样
__ __ __ __ X __ __ __ __ B __ __ __ X __ __ __ __ __ __ __ __ X B __ __ __
把12个字母填完以后,就成了这样:
E F I L X G H J K B D G L X B E F K A D H K X B E G J
于是,这个就是我们所要的解。要是想再糊弄人一点,不妨对A~L做一个轮转替换……
最后,以上内容抄袭自《蚁迹寻踪及其他数学探索》12章。
非常有意思的一套书,原书质量和翻译质量均属上乘。如果有谁要送我礼物的话,不妨买个一本两本给我。
最后是福利
话说,从来不去攻城的男人是什么呢……
大概就是法师了吧……


01月 16th, 2010 at 00:40
城坚弗破则万民来朝,破璧不穿乃贻笑大方