100層摔兩個雞蛋的問題

2021-07-29 13:44:52 字數 1354 閱讀 8089

這是一道動態規劃的題目。

參考兩個鏈結,可以理解解法。

1. 2.

在(1)中,把100層摔雞蛋問題,化成動態規劃理解

f(a,b)表示現在有a個雞蛋,可以允許測試b次,那麼可以被測出來的層數是多少。

譬如,f(a,b)=100。我不知道哪一層是臨界層,也不知道怎麼分段去測,但是我肯定如果有100層,我通過a個雞蛋,進行b次測試就一定能夠測出來。

這裡分兩種情況

1.如果第一次測試,我在x層扔下來,雞蛋摔破了。損失乙個雞蛋a-1;損失一次測試b-1。所以是f(a-1,b-1)

2.如果第一次測試,我在x層扔下來,雞蛋沒有摔破,雞蛋無損失a;損失一次測試b-1。所以是f(a,b-1)

綜合兩種情況:

f(a,b)=f(a-1,b-1)+f(a,b-1)+1;

其實這裡優點難理解。我的理解是,1是本次測試所要扣除的1。之所以前面兩個f要相加,是因為我現實中可能性就是有破和不破這兩種,我都是可以自己控制解決這兩種情況的。一層樓,可能發生兩種情況,但是上面的層和下面的層我都掌握著,都涵蓋到了。所以用加法,說明我總共能夠測這麼多層樓。

除了表示式外,還有兩個公式

f(a,1)=1;我有a個雞蛋,但是只能測一次,那肯定是只能測出一層樓了。

f(1,b)=b;我有1個雞蛋,總共可以測試b次,我肯定是只能從1-n層的順序測試,只能測b層樓。

好了,現在列個**,求出來就可以了。

行數是雞蛋數目。列數是測試次數。我們知道2個雞蛋測試14次就可以測試105層樓。

可是,我們想要知道究竟實際是如何分段測試的?看(2)

(2)在 2 鏈結中,有說明100層樓,我們如果平均分段

10—20—30—40—50—…這樣子平均分段

其實這樣子分段,段是平均的,但是我的測試的次數是不平均的。

試想在10層雞蛋不破,我們就要測試20。20層一定是從10層過來的,這就意味著,這裡多了乙個測試次數。所以,最佳的分段方案上,上層樓層段內層數比下層樓層段類層數少一層。這樣就保證了無論臨界樓層在哪個區間段,我們總能通過同樣的試探次數將能將其找出來。

可以根據14和上下層相差1的關係來分層。

2–15

16–28

…驗證每次測試都是14次:

15分段值1次

2–14 一共13次

所以14次。

100層樓摔雞蛋問題

reference 題目 有一棟100層高樓,從某一層開始扔下的玻璃杯剛好摔壞,現有兩個玻璃杯,最少幾次能找到那一層?首先我要對題目的表述提點意見。這是乙個很有歧義的表述方式,容易誤導人向概率的方向去思考。比如說,我可以回答 最少一次能找到那一層 我就拿個杯子,從一樓起一層一層的摔。從概率上講,有可...

N個雞蛋從M樓層摔(2個雞蛋從100層摔)

一 題目 有一棟樓共100層,乙個雞蛋從第n層及以上的樓層落下來會摔破,在第n層以下的樓層落下不會摔破。給你2個雞蛋,設計方案找出n,並且保證在最壞情況下,最小化雞蛋下落的次數。二 思路 先假設,最小的次數為x次。首先在x層摔,那麼會出現兩個結果 1 碎了,為了找出那一層碎了,第二個雞蛋必須從1 x...

2個雞蛋從100層摔(N個雞蛋從M樓層摔)

一 題目 有一棟樓共100層,乙個雞蛋從第n層及以上的樓層落下來會摔破,在第n層以下的樓層落下不會摔破。給你2個雞蛋,設計方案找出n,並且保證在最壞情況下,最小化雞蛋下落的次數。假設每次摔落時,如果沒有摔碎,則不會給雞蛋帶來損耗 二 解題思路 我們先假設最壞情況下,雞蛋下落次數為x,即我們為了找出n...