今日同学参与面试回来,问了我一道题,如下:
25匹马,5条跑道,每次只能跑5匹,求问最快多少次能确定前三?
我沉思了几秒,在纸上比比划划遂想到了答案,我的求解方案如下:
1)先分5组跑5次,这5组分别编号为ABCDE,跑完5次后就可以确定每组的前三名。
2)然后把每组第一名拿出来跑第6次,这样5组的第一名可以得到它们的排序,把最差的两个第一名所在的组别淘汰。A1代表A组第一名,假如A1>B1>C1>D1>E1,则淘汰的是DE这2组。这时候,只剩下ABC3组了。
3)假设这时候A1快于B1,B1快于C1,最后一次就把A2 A3 B1 B2 C1拿出来跑最后一次,便可以确定前三名了
总共就花了5+1+1=7次,便确定出前3名了!