25匹马问题

来源:互联网 发布:java重载的条件 编辑:程序博客网 时间:2024/05/16 18:15

25匹马.

裁判表坏了, 不知道具体时间. 只知道顺序.

每次只能跑, 5匹马.

问要跑几次, 在能判断出前三名.

 

1、分5组进行5场比赛,排出每组的1、2、3
2、5个组的第一名进行第6场比赛,确定第一名
3、用第6场比赛的2、3名,加第6场中第1名那组的2、3名,加第6场中第2名那组的第2名共5匹马进行第7场比赛,
第7场比赛的1、2名即所有排名的第2、3名。
原理:第6场比赛是各组的第一名,第一名如果进不了前3,那这个组的其它马都不用考虑了吧?

 

首先是先全部都比一次: 
A1 A2 A3 A4 A5 
B1 B2 B3 B4 B5 
C1 C2 C3 C4 C5 
D1 D2 D3 D4 D5 
E1 E2 E3 E4 E5 
这5次是必须的 
然后贪心,分别找出第一,第二,第三 
先A1 B1 C1 D1 E1,这样可以得到第一,不妨设这组结果为A1 B1 C1 D1 E1,A1第一 
有了上面6组结果可以肯定第二在A2 B1中 
如果第二是A2,那么第三肯定在B1 A3中 
如果第二是B1,那么第三肯定在A2 B2 C1中 
所以现在我们只要知道了A2 A3 B1 B2 C1的大小顺序就可以判断第二第三分别是谁 
所以总共需要7次比赛就可以了

原创粉丝点击