12球太少,我3次能称14球,不相信?我还4次称41球,5次122球……
来源:互联网 发布:mac极点五笔输入法 编辑:程序博客网 时间:2024/05/17 08:31
本文原发表于我在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个呢?
流传的题目很简单,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个呢?
- 12球太少,我3次能称14球,不相信?我还4次称41球,5次122球……
- 有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称?
- 有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称? .
- 有12个球,一个次品,有一个天平,称3次得出哪个是次品,怎样称?
- 12个球,有一个不同(不知是轻是重),称3次找出那个球
- 12只球,有1个重量不同,称3次找出坏球
- 有12个球,称3次找出那个异常球,并判断轻重
- 12个球用天平称3次找到重量不同的那个球
- 我不相信
- 12球问题-12球,1球异常,称3次,得该球且只轻重
- 有12个球,形状大小一样,有一个重量不一样,只能用天平称3次,找出那个球,应该怎么称?
- 我的5次面试经历
- 我的第3次C++实验
- 12个球用天平称3次的问题
- 12个乒乓球称3次,分出轻重
- 我的第五次实验
- 我不相信眼泪
- 有12个相同的球,有1个与其他11个不同(或轻或重),你只能用天平称3次(天平没砝码
- 关于两代语言.C/C++,java/c#_C#教程
- SQL命令
- SOA论剑三亚江湖会
- Visual Studio 项目列表清除程序
- 正则表达式测试器0.4(Boost Regex Tester 0.4) (最新版本)
- 12球太少,我3次能称14球,不相信?我还4次称41球,5次122球……
- 软件版本中的GA, RC 是什么意思?
- 如何设置桌面墙纸?
- 英语谚语
- 三子经
- E文积累_20080303_find a needle in a haystack
- 调研报告的格式
- AJAX Extensions一些控件用法
- jQuery 对象和dom对象转换