我們發現,無論雞蛋1(雞蛋1)怎麽扔,雞蛋2(雞蛋2)都必須在“破碎的樓層”和下壹個不會破碎的最高樓層之間,壹層壹層(從最低到最高)往下扔。舉個例子,如果雞蛋1是從5樓和10樓扔下來的,但是是從15樓扔下來的,那麽在最壞的情況下,雞蛋2必須從11,12,13,65438嘗試。
具體做法
首先,我們試著從10層扔雞蛋,然後是20層,以此類推。
q如果雞蛋1第壹次扔到樓下(10層)就碎了,那麽最多需要扔10次。
q如果雞蛋1是最後壹次(100層)扔下樓後碎的,那麽最多應該扔19次(10,20,…,90,100層,然後91到99層)。
那還不錯,但我們只考慮了絕對最壞的情況。我們要進行“負載均衡”,讓這兩種情況下扔出的雞蛋數量更均勻。
我們的目標是設計壹個扔雞蛋的方法,這樣在扔雞蛋1的時候,不管是第壹次還是最後壹次扔到樓下都會被打破。時代越穩定越好。
(1)完美負載均衡的方法應該是,無論雞蛋1是從哪個樓層扔出的,任何時候扔雞蛋1的次數加上扔雞蛋2的次數都是壹樣的。
(2)如果有這樣的投擲方法,每次雞蛋1多扔壹點,雞蛋2就可以少扔壹點。
(3)因此,每扔壹次雞蛋1,就要減少雞蛋2可能需要扔到樓下的次數。例如,如果雞蛋1從第20層往下扔,然後從第30層往下扔,那麽雞蛋2可能被扔9次。如果再扔壹次雞蛋1,我們必須把雞蛋2扔到樓下的次數減少到8次。換句話說,必須讓雞蛋1從39樓掉下來。
(4)所以,雞蛋1必須從X層往下扔,然後X-1層加起來...直到到達100層。
(5)解方程X+(X-1)+(X-2)+…+1 = 100得到X(X+1)/2 = 100→X = 65438+。
讓我們從14層開始,然後是27層,然後是39層,以此類推。最壞的情況,我們要扔14次雞蛋。
就像解決很多其他的最大化/最小化問題壹樣,這類問題的關鍵在於“平衡最壞情況”。?