51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2601|回复: 10
打印 上一主题 下一主题

25匹马的问题--来之六期一小菜

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-2-18 12:37:45 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
面试被问了一个问题,愚蠢的脑袋在那么短的时间里没有想起来,问题如下:

条件1: 25匹马....

条件2: 5跑道

求: 如何找出跑的快的前3匹马?最少跑几次(比1轮算1次)

答:冥想中...........想一会儿再去baidu..(原来不是时间长短问题,而是脑袋大小问题...)







还是找了baidu.不过没有找到答案,但是给了我重要的提示,估计百度上有些答案也是copy的,废话少说,来了:

步骤1,海选:25匹马分5组,跑5轮,决出每组前3,  要点:只有每组的前3才有可能成为全部马的前3

步骤2 利用步骤1的结果,把每组的第1, 第2,第3名分别组成1组,这样跑3轮, 1名组(第一名组成的小组,下同), 我们取前3, 2名组取前2, 3名组取前1,
要点:1名组的前3有可能成为全部马的前3, 2名组只有前2名才能成为全部马的前3, 因为不要忘记这个小组的特性,它是2名小组,肯定有匹1名组的马排在2名组头马的前面.(有点饶,好好理解), 同样的道理,3名组只取1个.

先在让我们总结下:2步骤共跑了8轮,得到了前6匹马, 而且得到了第一名马,就是1名组的第一,他肯定是第一了,毫无疑问.

所以步骤3:剩下的5匹马在跑1轮,得出前2名即可.



所以一共需要9轮

不知各位还有什么不同意见,欢迎评论
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-3-5 16:32:50 | 显示全部楼层
原来只要7轮,让我在想想
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-3-5 16:39:23 | 显示全部楼层
之前没有看过归并排序,看了2楼的分析,才觉得我原有的分析又浪费了 5个第一名一起跑的结果 这一资源....
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-21 08:46 , Processed in 0.071816 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表