51Testing软件测试论坛

标题: 他遇到的一个经典题目(转) [打印本页]

作者: pcl2004_27    时间: 2005-1-9 19:33
标题: 他遇到的一个经典题目(转)
一个朋友经过n轮面试去上海微软了。

他遇到的一个经典题目:

有25匹赛马,每次赛只能有5匹参加,问最少赛几次能找出最快的3匹马,并排出名次。
作者: pcl2004_27    时间: 2005-1-9 19:42
给个答案:
先将25匹分为3组,分别测试,得到每组最快的各3匹,一共9匹马。
再从9匹中任选5匹比赛,得出前3,淘汰最后2个。
然后从前3中任选一匹(剩2匹),加入9匹剩下的4匹中,组成5匹,比赛,
淘汰最后2匹,得到前3。
再此前3与括号()中的那2匹,组成5匹,比赛,最后得到前3,分出结果。
作者: wsj112233    时间: 2005-1-9 20:40
不是每次赛只能有5匹参加吗?
上面的答案怎么写“先将25匹分为3组,分别测试,得到每组最快的各3匹,一共9匹马”呢?
作者: 依伊卜舍    时间: 2005-1-10 08:54
对呀,我也有楼上的疑问。
作者: joriqian    时间: 2005-1-10 09:53
能不能说明白一点呀。
作者: pcl2004_27    时间: 2005-1-10 10:03
我只是把人家给的答案拿出来,让大家自己动动脑,没有说这个答案就是对的

大家可以自己把自己的答案拿出来!提供自己的思路!
作者: Nio    时间: 2005-1-10 10:19
25<=3*9:将马分成3组,不过每次参加比赛的还是5匹,参加比赛:5=9-4(暂不参加)
5=3+2(将被淘汰)——3组:第一轮淘汰2*3共6匹。
5=3-2(暂不参加)+4(or 3)——3组:第二轮加上第一轮没参加的4匹,再进行一次淘汰,不过有两组在第一轮进行分组时只有8匹,故此轮只能淘汰4匹(或在第一轮淘汰4匹,第二轮淘汰6匹)。
5=3+2——3组:第三轮加上第二轮没参加的2匹,每组第一名用来排名次。
作者: Nio    时间: 2005-1-10 10:25
楼主,你这个答案是正确答案么?

——此题的关键在于每次只能有5匹马参加,而每次比赛的前三必须能够参加下一轮比赛。

[ Last edited by Nio on 2005-1-10 at 10:33 ]
作者: lucifer    时间: 2005-1-11 09:11
疑惑中
作者: 冰河    时间: 2005-1-11 09:41
标题: 把你们各自的答案再解释清楚一点好吗?特别是楼主的答案!!!

作者: 赌一把    时间: 2005-1-21 13:18
我是想不出来了,累,懒的想
作者: beiyue    时间: 2005-1-21 16:39
标题: 不是吧,楼上的斑竹!

作者: Nio    时间: 2005-1-21 18:36
只要9次比赛就可以了哟:p

[ Last edited by Nio on 2005-1-21 at 18:37 ]
作者: songfun    时间: 2005-1-21 22:18
标题: 两次。
其实微软的绝招就是这几招,有本书叫《微软的选修秘密》,会发现这道题跟另一道极为相似,改头换面一下就出来了。有兴趣可以专门研究研究这些题目的共通之处,所谓一法通万法通。相信不难的。
这道题是:
假定你有8个撞球,其中有1个比其他球重,如果只能利用天平来判定哪一个重,请问要找到重的那个球至少要几次?(答案见题目)
作者: songfun    时间: 2005-1-21 22:27
知道为什么只要两次么?嗯,答案下期公布。。。呵呵
作者: 小子不信邪    时间: 2005-1-24 11:49
拿6个,各3个,剩下两个。对3个的两组进行比较
1,如果两边一样重,那么对剩下的比较;
2,如果两边不一样重,对重的那边进行分组,各取一个进行比较,结果就出来了。
作者: songfun    时间: 2005-1-24 16:33
没错,呵呵,正如楼上说的。
作者: owen.wang    时间: 2005-2-3 16:58
好难啊,这样的题目,面试的时候一定是做不出来的。
作者: adamstao    时间: 2005-2-17 12:07
标题: 我觉得是8次

作者: shiling    时间: 2005-2-17 13:37
我的天那,我就是计算不出来
作者: time    时间: 2005-2-21 14:43
我的答案是7次。
具体如下,请大家帮忙测试,看有否bug:
分成5组。
赛5次得到每组前3名:
a1、a2、a3;
b1、b2、b3;
c1、c2、c3;
d1、d2、d3;
e1、e2、e3。
将5个第一名进行比赛,得到前3名,不妨假设按名次依次为a1、b1、c1。
这样,依据二叉树排序原理,因最终只取前三名,所以从a1算起超过三个节点的均被淘汰,故:d和e组可淘汰;c组的后两名也可淘汰;b组的最后一名也可以淘汰。
第一名a1不需再赛,剩余的5匹a2、a3、b1、b2、c1赛一次取出前两名,即为总成绩第二和第三。
所以,共赛7次。
作者: time    时间: 2005-2-21 14:44
我的答案是7次。
具体如下,请大家帮忙测试,看有否bug:
分成5组。
赛5次得到每组前3名:
a1、a2、a3;
b1、b2、b3;
c1、c2、c3;
d1、d2、d3;
e1、e2、e3。
将5个第一名进行比赛,得到前3名,不妨假设按名次依次为a1、b1、c1。
这样,依据二叉树排序原理,因最终只取前三名,所以从a1算起超过三个节点的均被淘汰,故:d和e组可淘汰;c组的后两名也可淘汰;b组的最后一名也可以淘汰。
第一名a1不需再赛,剩余的5匹a2、a3、b1、b2、c1赛一次取出前两名,即为总成绩第二和第三。
所以,共赛7次。
作者: time    时间: 2005-2-21 14:45
我的答案是7次。
具体如下,请大家帮忙测试,看有否bug:
分成5组。
赛5次得到每组前3名:
a1、a2、a3;
b1、b2、b3;
c1、c2、c3;
d1、d2、d3;
e1、e2、e3。
将5个第一名进行比赛,得到前3名,不妨假设按名次依次为a1、b1、c1。
这样,依据二叉树排序原理,因最终只取前三名,所以从a1算起超过三个节点的均被淘汰,故:d和e组可淘汰;c组的后两名也可淘汰;b组的最后一名也可以淘汰。
第一名a1不需再赛,剩余的5匹a2、a3、b1、b2、c1赛一次取出前两名,即为总成绩第二和第三。
所以,共赛7次。
作者: revolution    时间: 2005-2-21 15:40
我靠
作者: time    时间: 2005-2-21 17:41
不小心发了三遍,sorry
作者: Nio    时间: 2005-2-22 09:58
time:

先分了5 组进行比赛,比赛5次,剩余15匹;
用二叉树原理,比赛1次,去掉两组(6匹),剩余9匹;
‘c组的后两名也可淘汰;b组的最后一名也可以淘汰。’去掉3匹,剩余6匹;去第一名,剩5匹,比赛1次;

Great!!
作者: xinyijiu25    时间: 2005-2-28 10:50
恩 好像很有道理的 Great!
作者: lifadonglfd    时间: 2005-3-2 13:17
标题: 哈哈,真的不错啊!是七次!!

作者: xm3525    时间: 2005-3-2 13:37
厉害,7次真不错啊
作者: zero零    时间: 2012-2-20 16:40
最简单的两次:25匹马,分5组,每组取第一名,再比下得出前三;

不过这个遗漏性太大了,可能第一组的第二名优于其他组的第一名哇。

作者: 朱小燕0616    时间: 2012-3-1 13:54
太厉害了,使用二叉树进行排除




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2