也许改变我程序员命运的一道面试题

lemondkeej 2005-07-18 06:38:46
今天我去一家公司面试,人家出了一道题:有12个球,其中有一个不合格,给你一个天平和三次称重的机会,问你怎样办得到找出那个不合格的球?我的答案是根本办不到。但是我没有说出来,请大家看看,说一下自己的方法。恳请大家:如果我真的错了,难道就真的不合适当程序员吗?
...全文
491 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
54783szg 2005-07-26
  • 打赏
  • 举报
回复
出这道题目的人真是BT至极,一看就是那种什么都知道什么都不会的那种人,求那帮面试的人来点实在的行不行啊!
zhaogz2008 2005-07-26
  • 打赏
  • 举报
回复
如果题目为其中一个球比其它球重或轻!问题就简单的多了!
noahyi 2005-07-26
  • 打赏
  • 举报
回复
1、2、3、4、5、6、7、8、9、10、11、12
分成三组 A:1、2、3、4
B:5、6、7、8
C:9、10、11、12
lihanbing 2005-07-26
  • 打赏
  • 举报
回复
大部分人都在想当然的回答这道题,看来还是有出的必要
「已注销」 2005-07-26
  • 打赏
  • 举报
回复
数据结构方面的问题嘛

程序员必备的基本知识
Chicle23 2005-07-26
  • 打赏
  • 举报
回复
分四组是肯定的
这不就是查找的一个算法吗?
见丰 2005-07-26
  • 打赏
  • 举报
回复
网上搜的老题,分4组为正解
zhaogz2008 2005-07-26
  • 打赏
  • 举报
回复
12分3组:比较就找出异常的球在那一组。
4分2组:再用两个标准球比较,就可得出异常球在那一组。
2分2组:再用一个标准球比较,异常球马上出现。
dgqbkl 2005-07-26
  • 打赏
  • 举报
回复

从2进制的角度
16 8 4 2 1
然后相加,判断
聪明的人应该明白了
moylaugh 2005-07-19
  • 打赏
  • 举报
回复
智力题
老题

跟程序员没有关系
鄙视这种公司

把全世界顶尖的程序员召集在一起,限定时间,用这道题考,我相信会有很多人做不出来的
jide_123 2005-07-19
  • 打赏
  • 举报
回复
这个题目太老了,是我们算法设计课的一道作业题。
答案greenmars2004(火球)已经给除了,我就不唠叨了
楼主好运!
bevin1010 2005-07-19
  • 打赏
  • 举报
回复
根本不用称重就可以确定哪一个是坏球!
1、分成4组比较,确定两组为不合格的
2、将不合格的两组合成再分三组,比较两次确定哪个为不合格组。
3、将合格组的球拿出一个与不合格组的两个球进行比较,比较一次就可以确定哪个为不合格球!
bevin1010 2005-07-19
  • 打赏
  • 举报
回复
楼上的有问题,谁说重的就是不合格的!轻的也可能不合格!
根本不用称重就能确定哪个球是不合格的!
我的方案:
1、将12个球分成四组,每组三个球。
2、任意拿出两组放在天平上进行比较,如果两组平衡,则说明不合格球在另两组,如果不平衡,说明不合格球在此两组。
3、将不合格球的两组再合到一起,分成三组,每组2个球,放在天平上进行比较,比较两次就可以确定不合格的那组。
4、拿出合格组中的任一个球与不合格的那组的2个球进行比较,比较一次就可以确定不合格的那个球。
discolt 2005-07-19
  • 打赏
  • 举报
回复
看了一下greenmars2004(火球) 的答案,这个才是正解。
discolt 2005-07-19
  • 打赏
  • 举报
回复
第一次在天平上随便放6个球。如果是平衡的,那么烂球在另外6个球里。

第二次,假设不合格的球较重,将存在烂球的6个球里取出4个用天平称。
会出现两种情况,一种是平衡的,那么烂球在剩余的两个球里,一种是不平衡,烂球在较重的两个球里。

第三次,找到存在烂球的2个球里再称一下找到重的就行了。
kkcy 2005-07-18
  • 打赏
  • 举报
回复
我觉得这像个二叉树的问题,不过要事先知道不合格的球比合格的球轻还是重。假设不合格的球比合格的重。把12个球分成两组,六个一组,放到天平上称,重的一组再均分成两份,再称,依旧把重的一组挑出来,该组共有三个球。从中随便拿出一个,剩余两个再放到天平上称,若此时天平持平,则拿出的那个球不合格,若天平倾斜,则重的那个球是不合格的。
wwwtom 2005-07-18
  • 打赏
  • 举报
回复
靠!上次我面试也是个煞笔,出这个题,
一个破公司加起来还没10个人,什么都不会,就知道,从网上搜个智力题,在那里瞎搅和
要求倒是挺高,工资倒是挺底
不知道楼主面试的是不是我上次的那家
不徻写代码 2005-07-18
  • 打赏
  • 举报
回复
kao,什么公司,这么BT
不徻写代码 2005-07-18
  • 打赏
  • 举报
回复
12个乒乓球的难题

现在有12个乒乓球,外形特征都一样,其中有一个不合规格(重量异常,但不知是轻是重)。要求用一台没有砝码的天平称三次,把这个坏球找出来。

将球分为A、B、C三组,每组四球分别是:A组(1、2、3、4);B组(5、6、7、8);C组(9、10、11、12)。
任意两组先比较,例如:A组与B组,会有两种可能:
一、A组与B组相等,那么说明有问题的一个球在C组(9、10、11、12)四球之中。
首先,将C组其中三球(9、10、11)与A组或B组中任意三球比较,会有三种可能:
1、C组中9、10、11三球于A组和B组中的任意三球相等,得出12球是坏球。
2、C组中9、10、11三球重于A组和B组中的任意三球,那么说这三球中有一球是坏球而且是过重。这样我们在将(9、10)相比,有两种可能,一是相等,得出11球是坏球,二是不相等,那么重的是坏球。
3、C组中9、10、11三球轻于A组和B组中的任意三球,那么说这三球中有一球是坏球而且是过轻。这样我们在将(9、10)相比,有两种可能,一是相等,得出11球是坏球,二是不相等,那么轻的是坏球。
二、A组重于B组,可以知道,要么A组中有一球过重,要么B组中一个球过轻,而C组(9、10、11、12)四球则是标准球。我们将A组(1、2)两球加上B组5球和A组3球加上B组6和C组任意好球比较,也就是(1、2、5)比上(3、6、12)同样会有三种可能:
1、(1、2、5)等于(3、6、12),那么4、7、8三球将有一坏球,用其中7、8两球相比是因为这两球是B组球也就是说可能有一球是超轻的。如果7、8两球相等说明4球是坏球,如果不相等,那么7、8两球轻的一个为坏球。
2、(1、2、5)重于(3、6、12),那么要么前者中有一球过重,或后者中有一球过轻。很名显, 3球到了轻的一边,而5 球到了重球一边,说明3 球与5 球是标准球。而1、2、6球中有一球是坏球,同上,比较1、2两球因为这两球是A组球也就是说其中可能有一球是超重的。如果相等6球是坏球,如果不等,那第1、2两球重的一球为坏球。
3、(1、2、5)轻于(3、6、12),只说明3 球和5球其中有一球是坏球。那么用其中一球与C组中好球相比,比如,11球同5球,如果5球等于11球,说明3 球是坏球,如果不等,5球是坏球。
三、A组轻于B组,很明显同上,要么A组中有一球过轻,要么B组中一个球过重,而C组(9、10、11、12)四球则是标准球。比较如上,只要互换位置便可。
interhanchi 2005-07-18
  • 打赏
  • 举报
回复

两边各放六个,必然有一边重一边轻(第一次称)。把较重的一边平均分到两个称盘进行称量,会有两种结果:质量相同,说明要找的球在另六个中,且较轻;
如果质量不同,说明哪个球在现在所称量的这六个中,且较重(第二次称)如果质量相同,
将另外六个球左一个右一个依次放入,就可以找到比较轻的那个球。如果质量不同,将任意两个球放入,就可以找到比较重的那个球。

不知道这算不算3次,如果算的话.那下面这种更简单.
每次放一个球,必然有两个球放进去的时候,天平不再平衡。这是再拿第三个球就得到结果了!
加载更多回复(3)

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧