如果你有很多枚雞蛋,和乙個n層高的樓,你想知道雞蛋的抗摔能力。如何在消耗蛋數與實驗速度之間找到最優解?

時間 2021-05-08 13:23:43

1樓:三川啦啦啦

不妨設 ,此時雞蛋必碎,我們記作 (若等於 1 就表示雞蛋完好)。

那麼,至多需要 10 次嘗試!

步驟:看 的情況,若是等於 0,那就繼續下降到 ;否則,若 ,則雞蛋必然在 之間蛋碎,那麼我們接下來考察它們的中點的情況:

重複以上步驟可知,至多需要 10 次嘗試,就可以知道蛋最開始碎在第幾層樓.

這是因為確定乙個二進位制的數 介於 0 至 1023,而每一次實驗,都是在確定 上的數字是 0,還是 1.

這是在我們完全不了解蛋碎的概率分布函式的情況下,只能認為蛋碎或不碎在任何一層都是等概率的,這種情況下的資訊熵是最大的,也就是不確定性最大。如果我們對於雞蛋的分布有一定的了解,那麼此時實驗的次數可能會下降。所謂資訊熵的定義,在上面的情景中:

等概率則意味著 ,那麼帶入上式得

所以這本質上是乙個資訊理論的問題.

2樓:幷州達人

這個題目明顯是從經典演算法題轉變來的。經典演算法題裡雞蛋的數量是有限的,找到解最重要,在此基礎上最好速度快一些。

題主想問的似乎更多的是,假設有足夠多的雞蛋,但是想設法在消耗雞蛋和速度上取得乙個平衡。

對於這種問題,那就需要乙個先決條件。那就是你必須告訴我們,你覺得雞蛋和速度之間的換算公式。

比如說你覺得只要能快一步,消耗乙個雞蛋無所謂。或者說,你覺得乙個雞蛋在價值上和一步是等價的。那麼最優解就是二分法。

先在一半高度扔,碎了就碎了,反正不這麼扔會多浪費一步,損耗和碎乙個雞蛋是一樣多的。

當然,雞蛋的和步數的價值甚至可能不是線性的。

比如在第一次扔的時候,雞蛋價值M+1步(M為最高層數)換句話說,如果這一次扔不能省下M步的雞蛋卻碎了的話,那你更傾向於選雞蛋不那麼可能碎的扔法,所以,你必須從第一層扔;第二次扔的時候,雞蛋的價值為M步。第三次扔的時候價值為M-1步,以此類推,每一次扔,雞蛋的價值都減1的話,那唯一的最優解就是從一樓開始,一步一步扔上去。

所以,想要找到最優解,先得說清楚雞蛋和步數的關係。

如果你有乙個男朋友,有很多次看到他和同乙個女孩子聊天,你會怎麼做?

Craneee 聊吧,那男孩子找我聊天我也不拒絕 反正現在是談戀愛不是結婚 沒有要求保持絕對忠貞 我不能阻止他奔向更好的人,同樣,他也不能阻止我人如何待我,我如何待人 天蠍emmmmm. 九三 看聊天記錄,分辨是公事還是私事,公私分明,公事多關心一下他具體工作中遇到的事,適當的提提意見。私事 表達我...

乙個n元有序整數陣列是否和整數之間有乙個一一對應?

何冬州楊巔楊豔華典生 我曾經和您有類似的考慮,當時,我考慮他的右半部分,從而將非負整數集不重複也不遺漏表現為乙個二元函式,用它來研究數論中的一些內容。另外,我也曾考慮弄成順時針圍成整圈的螺旋形 或雙聯的蚊香盤形,兩聯對稱,整體盤成乙個圓 考慮整數列 非負數列 自然數列 4n 1 n 1 6n 1 n...

如果你是乙個有很多人向你表白的人,你會怎麼做

龍潛 全都拒絕一次。看看剩下還會有幾個人在堅持追你,再看他們的真心做選擇。連表白失敗都不能承受的人,心理承受能力太不行。而且真的愛你的人,表白失敗對他來說根本就不是困難,他失敗後肯定會繼續追你的。 愛好很多的普通人 我有被表白的經歷,但不到特別多的地步。我自己反正是沒有感覺的直接拒絕,我也不是那種喜...