題目一:對於25匹馬,有一個賽場,賽場有5個跑道,不使用計時器(也就是每次比賽僅僅得到本次的比賽的順序)。試問最少比多少場才干選出最快的三匹馬?
思路:
0)前5場:這個題相對照較簡單,25匹馬至少要所有參加比賽,所以把25匹馬分成5組進行比賽。這樣我們就能夠得到比賽結果例如以下:

1)選總體第1名:如今我們要選總體第一名,可能成為總體第1名的馬匹為:{A1、B2、B3、B4、B5},那么第6場比賽為[A1。B1。C1,D1。E1]
比賽結果:第6場得到總體第1名

2)選總體第2、3名:依據矩陣關系。可知可能成為總體第2名的馬匹為:{A2、B1},可能成為總體第3名的馬匹為{A2、A3、B1、B2、C1},所以第7場比賽為[A2,B1,A3。B2、C1]
比賽結果:第7場得到總體第2、3名

可能你對上面紅色字體不是特別理解,換種思路來說:
總體前1名可能出現范圍:A1
總體前2名可能出現范圍:A2、B1
總體前4名可能出現范圍:A1、A2、B1
總體前7名可能出現范圍:A1、A2、A3、B1、B2、C1
... ...
自己畫一下就能夠知道里面的規律

題目二:對於25匹馬,有一個賽場,賽場有5個跑道。不使用計時器(也就是每次比賽僅僅得到本次的比賽的順序),試問最少比多少場才干選出最快的五匹馬?(第一題是選前三名)
思路一:(簡單的,競標賽排序)
所謂簡單。一般都有些蠻力的味道。全部優化,一般都會借助上一次的結果優化下一次的操作。
簡單的思路關鍵詞是:替換思想(用已選出的賽馬替換掉選出的馬)
0)和題目一思路一樣,我們須要5場比賽來得到25匹馬的基本順序。

1)開始選馬
第6場:選總體第1名-->參賽馬為[A1,B1,C1,D1,E1]-->如果選出的總體第1名為A1
第7場:第選總體第2名-->參加在為[A2,B1,C1。D1。E1]-->如果選出的總體第1名為B1
第8場:選總體第3名-->參加在為[A2。B2,C1,D1。E1]-->如果選出的總體第1名為A2
第9場:選總體第4名-->參加在為[A3,B2。C1。D1,E1]-->如果選出的總體第1名為C1
第10場:選總體第5名-->參加在為[A3。B2,C2,D1,E1]-->如果選出的總體第1名為C2
.....
第25場:選總體第20、21、22、23、24、25
所以使用競標賽排序思想(替換策略)。選出前5名須要10場比賽
思路二:
再反復一句:所謂簡單,一般都有些蠻力的味道。
全部優化,一般都會借助上一次的結果優化下一次的操作。
那么優化后的選馬方案為:
0)前5場仍然是比賽得到5組馬匹的基本序列

1)第6場:參賽馬為[A1。B1,C1,D1,E1](比賽后如果A1>B1>C1>D1>E1)
比賽結果:第6場得到總體第1名A1

2)第7場:我們繼續分析可能為總體第2名的馬為{A2、B1}。可能為總體第3名的馬為{A2、A3、B1、B2、C1}。
此時我們能夠知道事實上僅僅須要比較[A2。A3,B1,B2,C1]就能夠得到第2、3名了(回憶一下剛才使用簡單替換思想,第6場比賽[A2,B1。C1,D1,E1]。當中D1、E1根本不可能是總體第2名的)
比賽結果:第7場得到總體第2、3名

3)問題來了。第7場得到2、3名。可是不能確定是哪兩匹馬。
所以我門要列舉一下第2、3名可能的情況(一共5種):
A2,A3
A2。B1
B1。A2
B1,B2
B1,B3
3.1) 對於第一種情況:A2,A3
那么總體第4名可能為:{A4、B1}
假設第4名為A4,總體第5名可能為{A5、B1}
假設第4名為B1。總體第5名可能為{B2、C1}
非常明顯,我們僅僅須要一場比賽(第8場)就能夠確定總體第3,4名,參賽馬為:[A4,B1,A5,B2,C1]

3.2)對於另外一種情況:A2、B1
那么總體第4名可能為A3、B2、C1
假設總體第4名為A3。總體第5名可能為{A4、B2、C1}
假設總體第4名為B2。總體第5名可能為{A3、B3、C1}
假設總體第4名為C1,總體第5名可能為{A3、B2、C2、D1}
那么我們要向得到總體第4、5名的馬匹,就須要比較[A3。A4,B2,B3,C1。C2。D1],非常明顯須要2場比賽(第8、9場)才干分出勝負

剩下的3種情況類似,選出前5匹馬,至少8場,最多9場
