Fw: [討論] Google面試問題

看板Prob_Solve (計算數學 Problem Solving)作者 (十三)時間10年前 (2014/04/12 02:08), 編輯推噓8(805)
留言13則, 7人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 Soft_Job 看板 #1JI2zrVk ] 作者: bleed1979 (十三) 看板: Soft_Job 標題: [討論] Google面試問題 時間: Sat Apr 12 02:07:46 2014 問題: 假設你有兩顆蛋,然後有一棟100層樓高的大樓。 而蛋的特性有的可能很堅固,堅固到從一百層樓跌下都沒事, 有的可能很脆弱,一樓就可以摔破。 現在你只知道這這兩顆蛋是完全相同的, 你想要知道蛋最高從哪一層樓摔下來不會摔破。 問題是:你要摔幾次才能計算出來? (如果你低於高度摔下蛋,蛋就沒事,如果高於那個樓層,蛋就完蛋) 在這過程你可以摔破蛋。 --- 以下是完全不經大腦思考的 rough 策略,有雷 --- http://ideone.com/B7E85H 策略是: 當我還有兩次機會時,我使用二分法。 當我只剩一次機會時,選擇已經安全的樓層 + 1。  附上此策略的解答 樓層 => 次數 1=>3 2=>4 3=>5 4=>6 5=>7 6=>8 7=>9 8=>10 9=>11 10=>12 11=>13 12=>14 13=>15 14=>16 15=>17 16=>18 17=>19 18=>20 19=>21 20=>22 21=>23 22=>24 23=>25 24=>26 25=>27 26=>28 27=>29 28=>30 29=>31 30=>32 31=>33 32=>34 33=>35 34=>36 35=>37 36=>38 37=>39 38=>40 39=>41 40=>42 41=>43 42=>44 43=>45 44=>46 45=>47 46=>48 47=>49 48=>50 49=>50 50=>3 51=>4 52=>5 53=>6 54=>7 55=>8 56=>9 57=>10 58=>11 59=>12 60=>13 61=>14 62=>15 63=>16 64=>17 65=>18 66=>19 67=>20 68=>21 69=>22 70=>23 71=>24 72=>25 73=>26 74=>26 75=>4 76=>5 77=>6 78=>7 79=>8 80=>9 81=>10 82=>11 83=>12 84=>13 85=>14 86=>15 87=>15 88=>5 89=>6 90=>7 91=>8 92=>9 93=>9 94=>6 95=>7 96=>7 97=>7 98=>7 99=>7 100=>7 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.203.156 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1397239669.A.7EE.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: bleed1979 (220.135.203.156), 04/12/2014 02:08:15

04/12 06:33, , 1F
其實有比二分法更好的答案...提示: 那個 50 其實很容易變小
04/12 06:33, 1F

04/12 06:35, , 2F
沿著這個變小的思路就會得到最佳解了
04/12 06:35, 2F

04/12 09:22, , 3F
期望值應該都是51次
04/12 09:22, 3F

04/12 09:44, , 4F
想想開方根好像比較正確:19次
04/12 09:44, 4F

04/12 12:27, , 5F
我的策略跟樓上一樣@@ 但是聽說有更小的@_@
04/12 12:27, 5F

04/12 14:36, , 6F
14次 f(0)=0 f(n)=max(j-1,f(i-j))+1, 1<=j<=n
04/12 14:36, 6F

04/12 15:27, , 7F
f(n)=min(max(j-1,f(i-j))+1), 1<=j<=n 這樣才對QQ
04/12 15:27, 7F

04/12 19:04, , 8F
n 一直打錯
04/12 19:04, 8F

04/13 00:16, , 9F
10次
04/13 00:16, 9F

04/13 00:22, , 10F
破1顆後step可以是2
04/13 00:22, 10F

04/13 00:31, , 11F
不對 我錯了= =
04/13 00:31, 11F

04/13 07:41, , 12F
看wikipedia的dynamic programming裡面就有解答了..
04/13 07:41, 12F

04/20 18:12, , 13F
想請教有沒有O(n)的方法,甚至是低於O(n)的方法?
04/20 18:12, 13F
文章代碼(AID): #1JI2-Ghv (Prob_Solve)
討論串 (同標題文章)
文章代碼(AID): #1JI2-Ghv (Prob_Solve)