題目:
有25匹馬,乙個5道的賽馬場,最少比賽幾次,能把這25匹馬中的1,2,3名找出來,並排出1,2,3名?如何組織每次比賽?
馬可以重複賽,不考慮疲倦影響速度等其他問題。
思路:首先肯定,25匹要分組賽。
最容易掉入,也最容易識別的陷阱就是:
5匹一組,賽5次,然後每組第一名再賽一次,總共六次,就ok了。這樣的問題就在於又可能某組的第二名比其他4組的第一名都快。進而想到最壞的 可能就是,分組的時候把真正的前三名分到同一組了。
問題的關鍵變成了第6次以後應該怎麼挑選再賽的馬
5分鐘左右,應該就能想到下面的正確思路。
前6次就按照剛才的賽法,
5次小組賽,一次各小組第一名賽,然後按各小組第一名在第六次比賽中的名次給各組編號。
第六次跑第一那匹馬所在的組就是第一組。
這樣,首先確定了真正的第一名,就是第一組第一名,下面要找真正的第二名和第三名。
想一下,4,5組所有馬匹已經不可能了,直接排除
下面在1組4匹,2,3各5匹共14匹馬力用最少的比賽次數決定真正的2,3名
真正可能來競爭這個2,3名的,
也只有第一組2,3名,第二組1,2名,和第三組第1名。仔細想想就明白了
所以只要挑這5匹出來,再賽一次,取前兩名
總共7次,就排出了25匹中的前三名
題目是不難
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...
一道面試題
前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...
一道面試題
如果n為偶數,則將它除以2,如果n為奇數,則將它加1或者減1。問對於乙個給定的n,怎樣才能用最少的步驟將它變到1。例如 n 61 n 60 n 2 30 n 2 15 n 16 n 2 8 n 2 4 n 2 2 n 2 1 public class myclass public static vo...