數(shù)學(xué)智力題:扔雞蛋(2)
來(lái)源:網(wǎng)絡(luò)資源 文章作者:奧數(shù)網(wǎng)整理 2019-06-08 15:28:19
【答案】
A:計(jì)算機(jī)學(xué)生可能會(huì)首先用第一個(gè)雞蛋做二分搜索(O(logN))再用第二個(gè)遞增做線性搜索(O(N)),最后必將用線性搜索結(jié)束因?yàn)橛玫诙䝼(gè)雞蛋時(shí)你無(wú)法確定最高一層。因此,問(wèn)題變?yōu)槿绾问褂玫谝粋(gè)雞蛋來(lái)減少線性搜索。
于是如果第一個(gè)蛋破裂在最高點(diǎn)我們要扔x-1次并且我們必須從x層高扔第一個(gè)蛋。現(xiàn)在如果第一個(gè)蛋的第一次扔沒(méi)有破裂,如果第一個(gè)蛋在第二次扔破了我們要扔x-2次第二個(gè)蛋。假如16是答案,我需要扔16次才能找到答案。來(lái)驗(yàn)證一下是否可以從16層開(kāi)始扔,首先從16層扔如果它破裂了,我們嘗試所有其下的樓層從1到15;如果沒(méi)破我們還能扔15次,于是我們將從32層(16+15+1)再扔。原因是如果它在32層破裂我們能?chē)L試其下所有樓層從17到31最壞扔第二個(gè)蛋14次(總共能扔16次了)。如果32層并沒(méi)破,我們還剩下能扔13次,依此類推得:
1+1516如果它在16層破裂,從1到15層最壞扔15次第二個(gè)蛋
1+1431如果它在31層破裂,從17到30層最壞扔14次第二個(gè)蛋
1+1345.....
1+1258
1+1170
1+1081
1+991
1+8100在最后我們能輕易地做到因?yàn)槲覀冇凶銐蚨嗳拥拇螖?shù)來(lái)完成任務(wù)
從上表我們能看到最佳的一個(gè)在最后一步將需要0次線性搜索。
能把上述規(guī)律寫(xiě)為:(1+p)+(1+(p-1))+(1+(p-2))+.........+(1+0)>=100.
令1+p=q上述式子變?yōu)閝(q+1)/2>=100,對(duì)100解答得到q=14。
扔第一個(gè)蛋從層14,27,39,50,60,69,77,84,90,95,99,100直到它破裂,再開(kāi)始扔第二個(gè)蛋。最壞情況只需14次。
在只有一個(gè)雞蛋時(shí),保險(xiǎn)起見(jiàn),我們只能從一樓開(kāi)始,一層一層地試驗(yàn),看看雞蛋有沒(méi)有被摔爛。這樣最精確,但是消耗的時(shí)間也最久。如果我們事先就知道這個(gè)雞蛋不被摔碎的最高落下點(diǎn)在30層到75層之間,我們最多也只要嘗試45次就能知道結(jié)果,F(xiàn)在我們手上有兩個(gè)雞蛋,根據(jù)上面的分析,一個(gè)合理的策略就是用第一個(gè)雞蛋確定出一個(gè)較小的樓層范圍,然后在這個(gè)范圍里用第二個(gè)雞蛋從下往上逐層嘗試。
比如說(shuō)讓第一個(gè)雞蛋每隔5層試驗(yàn)一次。當(dāng)它在某一層被摔爛時(shí),也就意味著確定了一個(gè)4層的待測(cè)試寬度(為什么是4層呢?假如雞蛋在5樓的時(shí)候沒(méi)破,10樓的時(shí)候破了,那么我們就只需要知道雞蛋在6,7,8,9層的結(jié)果)。這時(shí)候,用第二顆雞蛋一層一層地嘗試,就能用較少的次數(shù)找出雞蛋剛好摔不爛的高度。
需要注意的是,如果想留給第二顆雞蛋較小的測(cè)試寬度,就要縮短第一個(gè)雞蛋的測(cè)試跨度。相應(yīng)的,也就增加了嘗試次數(shù)。為了確定合適的跨度,使得總試驗(yàn)次數(shù)之和盡可能小,我們可以采取如下的辦法。
設(shè)跨度是L,第一顆雞蛋的嘗試次數(shù)就是[100/L],第二顆雞蛋的嘗試次數(shù)就是L-1,因此嘗試次數(shù)總和就是[100/L]+L-1。根據(jù)這個(gè)公式,我們可以列出下面這個(gè)表:
可以看出,我們只需要選8-13之間的一個(gè)寬度,都能使得總嘗試次數(shù)是19次。
但問(wèn)題是,這已經(jīng)是最優(yōu)策略了嗎,有沒(méi)有更好的方法呢?
有的。上面的方法固定了第一顆雞蛋的測(cè)試跨度,如果我們靈活變動(dòng),就能使得總嘗試次數(shù)變得更少。首先,我們選擇從14樓丟下第一顆雞蛋。如果它破碎了,我們就從1樓開(kāi)始,逐層丟第二顆雞蛋,最多試14次便能得到答案。如果它沒(méi)有破碎,那我們往上走13層,在27樓第二次丟下第一顆雞蛋。此時(shí)如果雞蛋碎了,那我們只需要在15層到26層之間用第二顆雞蛋進(jìn)行最多12次試驗(yàn)即可,加上第一顆雞蛋的兩次嘗試,仍然是14次。類的,依次減小測(cè)試跨度,如果雞蛋足夠頑強(qiáng),那我們丟下第一顆雞蛋的樓層就分別是14,27,39,50,60,69,77,84,90,95,99以及最后的100層。因?yàn)榈谝活w雞蛋每多嘗試一次,第二顆雞蛋需要嘗試的最大次數(shù)就減少一次,因此,總嘗試次數(shù)的最大可能一直是不變的,保持在14次。用這種方法,我們只需要不超過(guò)14次的嘗試就能夠找出答案。有沒(méi)有更優(yōu)的策略了?感興趣的讀者可以自行思考。
相關(guān)文章
- 小學(xué)1-6年級(jí)作文素材大全
- 全國(guó)小學(xué)升初中語(yǔ)數(shù)英三科試題匯總
- 小學(xué)1-6年級(jí)數(shù)學(xué)天天練
- 小學(xué)1-6年級(jí)奧數(shù)類型例題講解整理匯總
- 小學(xué)1-6年級(jí)奧數(shù)練習(xí)題整理匯總
- 小學(xué)1-6年級(jí)奧數(shù)知識(shí)點(diǎn)匯總
- 小學(xué)1-6年級(jí)語(yǔ)數(shù)英教案匯總
- 小學(xué)語(yǔ)數(shù)英試題資料大全
- 小學(xué)1-6年級(jí)語(yǔ)數(shù)英期末試題整理匯總
- 小學(xué)1-6年級(jí)語(yǔ)數(shù)英期中試題整理匯總
- 小學(xué)1-6年語(yǔ)數(shù)英單元試題整理匯總