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

转载请注明出处:

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

问题描述

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

相关文章:

  • 【算法】直接插入排序C语言实现
  • 嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化
  • Android 动画animation 深入分析
  • Mybatis极其(最)简(好)单(用)的一个分页插件
  • Ext JS Kitchen Sink [Learning by doing](2)ArrayGrid
  • 你感兴趣的文章:

    标签云:

    亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,