📜  蛋拼图的C程序|英特尔®开发人员专区DP-11

📅  最后修改于: 2021-05-28 04:42:00             🧑  作者: Mango

以下是对这个著名难题的实例的描述,该难题涉及n = 2个鸡蛋和k = 36层的建筑物。

假设我们希望知道36层建筑物中的哪个楼层可以安全地放下鸡蛋,并且哪些会导致鸡蛋在着陆时破裂。我们做一些假设:

…..跌落下来的鸡蛋可以再次使用。
…..破损的鸡蛋必须丢弃。
…..跌落对所有鸡蛋的影响都是相同的。
…..如果鸡蛋掉落时破裂,那么如果从较高的地板掉落,鸡蛋也会破裂。
…..如果一个鸡蛋在跌落中幸存下来,那么它将在较短的跌落中幸存下来。
…..不能排除一楼的窗户破鸡蛋,也不可以排除第36层的窗户不会破鸡蛋。

如果只有一个鸡蛋,并且我们希望确保获得正确的结果,则只能以一种方式进行实验。从一楼的窗户放鸡蛋;如果它仍然存在,请将其从二楼的窗口中放下。继续向上直到破裂。在最坏的情况下,此方法可能需要丢弃36次。假设有2个鸡蛋。保证在所有情况下都能正常工作的最少的排卵次数是多少?
问题实际上并不是找到关键的最低限度,而仅仅是确定应该从中跌落鸡蛋的最低限度,以使试验的总次数减至最少。

资料来源:动态编程维基