兩個軟硬程度一樣但未知的雞蛋,它們有可能都在一樓就摔碎,也可能從一百層樓摔下來沒事。
有座100層的建築,要你用這兩個雞蛋確定哪一層是雞蛋可以安全落下的最高位置。可以摔碎兩個雞蛋。
最少需要幾次測試,才能得到摔碎雞蛋的樓層?方案如何?
問題轉化:
兩個雞蛋, 扔k次, 最多測試多少層樓?
假設第乙個雞蛋從m層扔下, 有兩種情況:
雞蛋碎了, 這時只能從1 – m-1層一層一層地實驗
雞蛋沒碎, 我們需要重新選擇樓層。
可以推出樓層總數是sum = k + (k - 1) + (k - 2) + … +1 = k * (k + 1) / 2.
解方程得k ≥ 14;
同樣, 當有三個雞蛋時, k - 1次機會可以測試 k * (k - 1) / 2 層樓, 如果第乙個雞蛋沒碎, 第二次在此基礎上增加(k-1)(k-2)/2+1層樓。
可推出三個雞蛋k次機會總測試樓層數為
100層樓扔兩個雞蛋問題
解釋 兩個雞蛋一樣,只有在達到某個樓層高度時,才會摔碎。可以假設這個摔碎臨界樓層是n。可見,用二分法結果很不穩定,特別是n小於50時最糟糕 甚至會比第一種直接遍歷的還要多一次 n越大越好找,需要嘗試的次數越少。如果這個題目換成雞蛋個數不限制,那就是用二分法最快了。當最高樓層為100時,可列出不等式 ...
100層樓摔雞蛋問題
reference 題目 有一棟100層高樓,從某一層開始扔下的玻璃杯剛好摔壞,現有兩個玻璃杯,最少幾次能找到那一層?首先我要對題目的表述提點意見。這是乙個很有歧義的表述方式,容易誤導人向概率的方向去思考。比如說,我可以回答 最少一次能找到那一層 我就拿個杯子,從一樓起一層一層的摔。從概率上講,有可...
100層樓和兩個玻璃球
有一棟100層高的大樓,給你兩個完全相同的玻璃球。假設從某一層開始,丟下玻璃球會摔碎。那麼怎麼利用手中的兩個球,用什麼最優策略知道這個臨界的層是第幾層?投擲次數分布不均。按最壞情況估計,這種方法就多做了幾次。為了使最壞情況的投擲數最小,我們希望無論臨界段在 總的投擲數都不變,也就是說投擲數均勻分布。...