黑马程序员技术交流社区

标题: 逻辑思维 [打印本页]

作者: 2209629404    时间: 2015-11-3 11:44
标题: 逻辑思维
2、有25匹马,速度都不同,但每匹马的速度都是定值。
现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。
问最少赛几场可以找出25匹马中速度最快的前3名?
每匹马都至少要有一次参赛的机会,所以25匹马分成5组,一开始的这5场比赛是免不了的。
接下来要找冠军也很容易,每一组的冠军在一起赛一场就行了 (第6场)。
最后就是要找第2和第3名。
我们按照第6场比赛中得到的名次依次把它们在前5场比赛中所在的组命名为ABCDE
即:A组的冠军是第 6场的第1名,B组的冠军是第6场的第2名……每一组的5匹马按照他们已经赛出的成绩从快到慢编号:
A组:12345
B组:12345
C组:12345
D组:12345
E组:12345
从现在所得到的信息,我们可以知道哪些马已经被排除在3名以外。
只要已经能确定有3匹或3匹以上的马比这匹马快,那么它就已经被淘汰了。
可以看到, 只有5匹马是有可能为23名的。即:A组的23名;B组的12名,C组的第1名。
取这5匹马进行第7场比赛,第7场比赛的前两名就是 25匹马中的23名。故一共最少要赛7场。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2