码迷,mamicode.com
首页 > 其他好文 > 详细

25匹马最少多少次可以选出前3

时间:2015-05-21 10:53:03      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:面试题目   25匹马   前3匹   

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/45887395

http://www.llwjy.com/blogdetail/208a6ac5e85d6078810047731d02c062.html

个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~
-------------------------------------------------------------------------------------------------

问题描述

      25匹马,5个跑道,每次只能泡5匹,用最少的次数选出最快的前3匹?


解决方案

      下面的解决方案最少7次,具体如下:

1)把25匹马随意分成5组,分别赛跑,记录每组的名次;

2)从这5组中分别取出每组的第一名,跑第六场,假如第六场的名次如下:第一名在X组、第二名在Y组、第三名在Z组、第四名在J组、第五名在K组;

3)取X组的第二名、第三名,Y组的第一名、第二名,Z组的第一名来跑第7场;

最后前三的结果就是:第一名是第六场的第一名,第二名是第七场的第一名,第三名是第七场的第二名。


解决方案分析

      解决方案中的第一步我们就不再啰嗦了,就从第二步开始,在第六场中,我们取每组的第一名来赛跑,可以得到第六场的第一名一定是所有马中最快的,所以第一名也就确定了,同时第六场跑完之后,所有马的最高名次也就确定了,我们简单描述如下:

组别:小组第一  小组第二  小组第三  小组第四  小组第五

X组: 第一名--最好第二--最好第三--最好第四--最好第五

Y组:最好第二--最好第三--最好第四--最好第五--最好第六

Z组:最好第三--最好第四--最好第五--最好第六--最好第七

J组:最好第四--最好第五--最好第六--最好第七--最好第八

K组:最好第五--最好第六--最好第七--最好第八--最好第九

      因此我们第七次只需要把可能是前三的马匹(X组的第二名、第三名,Y组的第一名、第二名,Z组的第一名)(正好5匹)来赛跑第七场,我们就可以知道前三的马匹是哪3匹了。


面试拓展

      上面这个题目可以当作面试题,用来考验被面试人的思维方式,如果是计算机相关的,我们还可以把这个题目稍微变型下,让它成为计算机的需求描述,下面是我的改编:


      问题描述:目前存在一个接口,可以给出用户活跃度之间的排序(降序),但是这个接口有一个缺点,一次做多可以处理5名用户,现在有25名用户,最少调用多少次这个接口可以获得活跃度前三的用户?


      当然关于这个题目的改编应该会有很多,介绍这个题目的目的就是想说名一个问题,我们在完成一步之后(第六场),在开始下一步的时候希望可以停下来想一想,这一步完成了是否对整体有影响,也许就是这个停下来,能够让我们少走很多的弯路。


另一个面试题

      这还有一个面试题目,也是考验思维方式的,这里和大家分享下:有1000瓶液体(正常,无毒),但是由于工作人员失误,将毒药滴到了其中一瓶中,从外观和气味上完全无法分辨出那一个是被污染过的,我们只知道这个毒药的毒发期是7天,实验室有10只小白鼠,只有7天的时间,如何实验才能知道哪一瓶是被污染的?

25匹马最少多少次可以选出前3

标签:面试题目   25匹马   前3匹   

原文地址:http://blog.csdn.net/xiaojimanman/article/details/45887395

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!