《12个球问题》分析

有十二个乒乓球形状、大小相同,其中只有一个重量与其它十一个不同,现在要求用一部没有砝码的天秤称三次,将那个重量异常的球找出来,并且知道它比其它十一个球较重还是较轻。

这是在园友“小_金_鱼”的《寂寞的程序人生》中看到的一个题目,“11道题智商超200…”这几个字完全吸引了我,迅速在Google中搜出了这篇文章。看了这篇文章发现都似曾相识,在学校的时候一直想知道自己的智商,肯定在120以上,没事的时候总找一些相关的题目做做,但每次都让我失望,没有一次超过120。但不代表我会认为我的智商在120以下,现在还是一样一看到“智商”或是IQ就让我两眼放光。当然那篇博客我也就没有往下看,因为我不寂寞啊。

下班第一件事就是打电话给老婆,说今天有题目做了,受我的影响,她也喜欢做这样的题目,在吃晚饭的时候,我告诉了她题目,一告诉她题目我就马上思考,生怕她提前想到了方法,那我多没有面子,但是每次带着功利心去做事,根本就不能正常的思考,高考考了两次,本想考武大的,结果顺利考上了武职。得知她没有在想这个问题我就开心了,我可以正常的思考了,吃完饭没有想出来,老婆说她要在纸上画画,计算计算,还好我不需要,我就一边洗碗,一边思考,最终我想出来了,高兴之情难以言表,就像我突然明白《火车运煤问题》一样,“有时灵光一闪而过,牛顿也吃苹果”。雷军说得对:成功就是99%的汗水+1%的灵感,后半句都被我们有意忽略。其实1%的灵感重要性远远超过前面99%。当灵感到来的时候你必须放下一切的抓住它,对,就是放下一切,哪怕是手上拿着一把枪对着犯人。当然是开玩笑的。

接下来就是在纸上证明给老婆看,证明的过程中,她的话也对我很有提示,整个过程也就三四分钟。但是感觉紧张又刺激,过了几分钟之后,她说是不是漏了一种情况,真的把我给吓一跳,难道我少考虑了一种情况,马上再次证明给她看,又是紧张刺激,最后得出我的分析是对的,分析这种东西就是你分析完之后,你就知道是否对错了,最后你说这就是标准答案。对,就是这样。

下面是分析,不好意思都写成日记了。

一:天平两边先各6个球

由于两边的重量肯定不等,不用称都知道天平肯定不能平衡,白白浪费一次,难道你自认为牛B到用2次就能得出结论,显然你不会这样认为,排除。

二:天平两边先各5个球

如果天平不平衡,特殊的球可能在左边,也可能在右边,左边和右边个称一次,你得不出答案,但你却用了三次机会,Game Over。

三:天平两边先各3个球

称完一次之后,你知道那个特殊的球在其中的6个当中,你要用两次找出那个特殊的球。

你先在天平两边各放两个,如果平衡,你在想特殊球是在左边呢,还是右边,你只有一次机会了,最后你狠坚定的说,排除天平两边先各3个球的情况。

四:我们程序员一般不考虑天平两个先各放2个球,周星驰可能会考虑两边先各放1个球,最后他说:你猜猜那个特殊的球是哪个,是轻是重?你愤怒的说,把这种情况拖出去斩了。

五:天平两边先各放4个球,答案从这里揭晓,请认真看。

1:  如果天平平衡,特殊球在剩下的4个当中,其他8个都为普通球。从4个和8个当中各取3个放在天平上,

1.1:如果平衡,特殊球就是4个当中剩下的那个,你还有一次机会,并且你已经知道是哪个球了,随便和一个球比,如果它重它就是重的,如果它轻它就是轻的。

1.2:如果不平衡

1.2.1  如果特殊球所在的那边轻,特殊球就是轻的,三个球中,称一次找出那个轻的,你会的

1.2.3  如果特殊球所在的那边重,特殊球就是重的,三个球中,称一次找出那个重的,你会的

2:如果天平不平衡,剩下的4个是普通球。从轻的那边取出1个,从重的那边取出3个,放到天平的一边,为A,重的那边剩下的1个和三个普通的放到另一边B。
2.1 如果A=B,特殊球在轻的那边剩下的3个中,3个球,一次找出轻的那个。
2.2 如果A>B,特殊球是重的,在B中除了普通球之外的三个中,3个球,一次找出重的那个。
2.3 如果A<B,特殊球中A中来自第一次轻的那边的那个球(C),或者是B中来自第一次重的那个球(D),C<D,拿C或者是D与普通球比一下就知道答案了。

这次总该打完收工了吧,不要再告诉我说还有错啊,我有心脏病的。

看完之后,你发现其实很简单,的确是这样,不难,乐趣在在于分析和证明的过程。在于1%的灵感。

这个过程让我兴奋,所以我把这篇博客当做是陈太汉的代表作,我的另一篇代表作《火车运煤问题分析》

本文转自啊汉博客园博客,原文链接:http://www.cnblogs.com/hlxs/archive/2011/08/17/2142820.html

《12个球问题》分析相关推荐

  1. 《火车运煤问题》分析

    作者:陈太汉 <火车运煤问题>分析 题目内容: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多 ...

  2. 由火车运煤问题想到的

    Technorati 标签: 面试题, 火车运煤 本文版权所有,转载请注明出处和作者联系方式. 作者:孙华明 联系方式: wormsun at gmail.com 今天在酷壳网站上看到一道面试题--火 ...

  3. 面试题:火车运煤问题

    面试题:火车运煤问题 来源:http://www.xymyeah.com/165.html 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手 ...

  4. 关于火车运煤的一些想法

    火车运煤也是个经典的问题了.它的定义如下: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨 ...

  5. 火车运煤问题 - 增加一个简单算法实现

    火车运煤问题 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大--每一公里 ...

  6. 几个程序员面试题:火车运煤问题、赛马问题

    火车运煤 这个可能是一个比较经典的智力题了,和以前的那个<赛马问题>很相似,其题目如下: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000 ...

  7. 也谈《火车运煤》问题

    今日在酷壳看到一篇比较经典的<火车运煤>的智力题 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最 ...

  8. 经典智力题:火车运煤

    题目描写叙述例如以下: 你是一个煤老板.你在矿区开採了3000吨煤,须要运送到市场上去卖,从你的矿区到市场有1000公里.你手里有一列以煤为动力的火车.这个火车一次最多能运1000吨煤,火车每公里消耗 ...

  9. 【面试题】火车运煤问题

    原文链接在此http://coolshell.cn/articles/4429.html 自己的思路 感觉这一题有点像微软一道飞机题,最多几架飞机可以绕地球一圈 想的是利益最大化,第一次到1/3处,放 ...

  10. 火车运煤(骆驼运胡萝卜)问题的最优解

    题目来源,http://coolshell.cn/articles/4429.html, 原始题目是这样的,你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1 ...

最新文章

  1. Ubuntu上配置VS Code调试C++
  2. 使用vue2.0 vue-router vuex 模拟ios7操作
  3. zabbix性能优化
  4. 实现自己的.NET Core配置Provider之Yaml
  5. OllyDBG 入门之四--破解常用断点设
  6. 2015/4/14课堂练习
  7. beeshell —— 开源的 React Native 组件库
  8. 已知矩阵 matlab,在MATLAB中,已知矩阵A,那么A(:,2:end)表示
  9. eclipse 使用lombok 出现的问题
  10. 关于nginx unit服务非正常关闭后,无法重新启动问题的处理
  11. 华为云OBS Requests specifying Server Side Encryption with KMS managed keys require Signature Version 4.
  12. 劲爆!群晖docker视频
  13. c语言 发纸牌 实验报告,“21点”纸牌游戏实验报告
  14. [渝粤教育] 西南科技大学 物流系统规划与设计 在线考试复习资料
  15. 对自己狠一点,开始写作吧
  16. FreeMarker 输出Boolean类型变量默认值
  17. 如果redis没有设置expire,是否默认永不过期?
  18. 用户权限影响瑞星安装
  19. 查看word的版本型号
  20. vs2010添加OCX控件并调用OCX中的函数

热门文章

  1. 关于WPS页面横向问题
  2. pdf格式怎么转换成word格式
  3. OS中关于父子进程的执行顺序和多个子进程之间的执行顺序(整理)
  4. ctime库函数的使用
  5. NVIDIA与服务器制造商合作推进AI云计算
  6. Android版俄罗斯方块的实现
  7. (39.3) Spring Boot Shiro权限管理【从零开始学Spring Boot】
  8. ASP.NET文件上传和下载
  9. SwfUpload及imgareaselect使用方法
  10. 准备翻译Windows 8 动手实验系列教程