• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            A Za, A Za, Fighting...

            堅信:勤能補拙

            2011推理題 - 兩個雞蛋[zz]

            2 Egg Problem

             繼續我們的推理問題之旅,今天我們要對付的是一個Google的面試題:Two Egg Problem.

            我們開始吧! 

            No.2  Google Interview Puzzle : 2 Egg Problem

            * You are given 2 eggs.

            * You have access to a 100-storey building.

            * Eggs can be very hard or very fragile means it may break if dropped from the first floor or may not even break if dropped from 100th floor. Both eggs are identical.

            * You need to figure out the highest floor of a 100-storey building an egg can be dropped without breaking.

            Now the question is how many drops you need to make. You are allowed to break 2 eggs in the process

             

            分析與解答:

               

                 題目要求試的最大次數最小。首先,討論兩個比較trivial的方案。

             

               方案1:從第一層開始扔雞蛋,如果雞蛋不碎,則上一層再扔。這樣,如果雞蛋在某一層碎的話,該層就是臨界的層。這種方案的優點在于省雞蛋,只會摔破一個雞蛋。還有一個雞蛋可以帶回家,做個雞蛋羹,補充營養個!  :) 缺點就是,如果雞蛋在100層才碎的話,那就要試100次啦。那你等電梯要等死啦,而且還要接受別人的打量的目光,心說這怪咖為什么每次都只坐一層樓啊…

             

              方案2 想必很多人都會想到這個方案。我只能說,這是中國計算機教育的成功啊。這就是“二分查找法”。首先在第50層樓扔雞蛋,如果雞蛋不碎的話,就去75樓。如果碎了的話,那么對不起,同志。由于你只剩一個雞蛋了,所以你得小心地從第一層開始,這樣才能保證你在雞蛋碎完的時候能找到臨界樓層。這種方法的優勢在于,如果你知道你的雞蛋比較硬的話,你就采用這個方法吧。臨界樓層越高,這個方法嘗試的次數越小。但這種優勢是用臨界樓層比較小時比較大的嘗試次數為代價獲得的。我們看到,如果臨界層數在49層的話,我們要嘗試50次,而臨界層數為100層的時候,嘗試次數只有7次。但是,現在的問題是,全部情況下的最大嘗試次數最小。這樣,雖然在某些情況下,這種方法的性能很好。但是就最差情況而言,還是要嘗試50次,好像還是有點大。這邊,我們想起來,“二分查找法”的目標是平均性能最佳,并不是最差性能最佳。我們似乎走錯了路!!!不過,方案二相比方案一來講還是有進步的。

             

              方案2似乎陷入了“短板效應”的泥沼,由于最壞情況下的壞性能制約了總體性能的提高。解決這個問題的總的原則應是:“一碗水端平”,盡量做到各種情況下的嘗試次數盡量差不多。這正應合GOOGLE的信條Don't be evil,不以別的情況為代價換取另一些情況的指標的提高。做到“不傷害”.(呵呵,這是我瞎聯想的)。那么,就照著這條路走吧,我假設每種情況下最大的嘗試次數為x.

              則第一次扔蛋的樓層應為x;

            第二次扔蛋的樓層應為 x+(x-1);

               依次類推。

               從上面看到,每次我們增加的樓層都是前一次減1.我們所要保證的就是應該在增加的層數變成0之前到頂樓,所以有:

               x+(x-1)++1100

               這是一個等差數列,整理后有:

                 x2+x-2000

            發現x14

             

            我們總結一下:

              第一次在14樓扔,如果碎了的話從一樓再開始扔;

            否則在14+13=27層扔,如果碎了的話從15層開始扔;

            否則在27+12=39層扔,如果碎了的話從28層開始扔;

            ……

            這樣,最大嘗試次數為14次就行了。不信你試試。

             

            最后,為了體現嚴謹性,給出本題的模型:

             

            轉移方程:

            minNum[n ] = min(1 + max(i – 1, minNum[n-i])) for 1n

            邊界條件:

            minNum[0] = 0; minNum[1] = 1

            這里,n為樓層數,i為起始樓層數。

             

            據說這是一個動態規劃問題,我還沒來得及仔細研究。其實,我的感覺是,很多理論最初的來源都是很樸素的真理,只是我們沒學懂,所以把它們想復雜了。所以,很好的理論就這樣不被大多數人所理解了。

             

            參考文獻:

            1.       http://blog.csdn.net/TravelInHistory/archive/2006/12/07/1434098.aspx

            2.       http://classic-puzzles.blogspot.com/2006/12/google-interview-puzzle-2-egg-problem.html

            posted on 2011-09-25 00:13 simplyzhao 閱讀(512) 評論(0)  編輯 收藏 引用 所屬分類: R_找工復習2011

            導航

            <2011年9月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久99国产精品久久99果冻传媒| 久久午夜羞羞影院免费观看| 7777精品伊人久久久大香线蕉| 久久综合久久伊人| 久久免费99精品国产自在现线| 日本亚洲色大成网站WWW久久| 久久人人爽人人爽人人片av麻烦 | 日本精品一区二区久久久| 大香伊人久久精品一区二区| 久久香蕉国产线看观看精品yw| 国产精品午夜久久| 久久精品草草草| 欧洲人妻丰满av无码久久不卡| 久久久久亚洲AV无码专区桃色| 99精品久久精品一区二区| 久久成人18免费网站| 久久亚洲春色中文字幕久久久| 久久人人超碰精品CAOPOREN| 久久99精品久久久久久动态图 | 91精品国产色综久久| 国产亚洲婷婷香蕉久久精品| 久久无码人妻一区二区三区午夜| 蜜桃麻豆www久久国产精品| 久久久久无码国产精品不卡| 亚洲一区二区三区日本久久九| 中文字幕无码久久人妻| 久久国产免费直播| 天天躁日日躁狠狠久久| 国产精品久久久亚洲| 成人精品一区二区久久久| 久久久精品国产亚洲成人满18免费网站| 久久午夜无码鲁丝片| 国产AV影片久久久久久| 久久伊人精品青青草原日本| 国产精品久久久久久久久久影院 | 亚洲国产成人精品无码久久久久久综合| 久久精品国产免费一区| 大香伊人久久精品一区二区 | 久久精品国产亚洲一区二区| 久久久久亚洲精品中文字幕| 久久99久久99精品免视看动漫|