📜  鸡蛋掉落拼图的PHP程序 | DP-11

📅  最后修改于: 2022-05-13 01:54:11.246000             🧑  作者: Mango

鸡蛋掉落拼图的PHP程序 | DP-11

下面是这个著名谜题的实例描述,涉及 n=2 个鸡蛋和一个 k=36 层的建筑物。
假设我们想知道在一座 36 层的建筑物中,从哪些楼层可以安全地放下鸡蛋,哪些会导致鸡蛋落地时破裂。我们做几个假设:
.....跌倒后幸存的鸡蛋可以再次使用。
..... 一个破碎的鸡蛋必须被丢弃。
.....跌倒对所有鸡蛋的影响都是一样的。
.....如果鸡蛋在掉落时破碎,那么如果从更高的楼层掉落它也会破碎。
.....如果一个鸡蛋在跌落中幸存下来,那么它会在更短的跌落中幸存下来。
.....不排除一楼窗户破蛋,也不排除36楼不破蛋。

如果只有一个鸡蛋,而我们希望确保获得正确的结果,则只能以一种方式进行实验。从一楼的窗户掉下鸡蛋;如果它幸存下来,就把它从二楼的窗户扔掉。继续向上直到它破裂。在最坏的情况下,这种方法可能需要 36 次粪便。假设有 2 个鸡蛋可用。保证在所有情况下都有效的最少数量的蛋液是多少?

问题实际上并不在于找到关键楼层,而只是决定应该从哪个楼层掉落鸡蛋,从而使试验总数最小化。

资料来源:动态规划维基

动态规划解决方案

PHP


输出:
Minimum number of trials in worst case with 2 eggs and 36 floors is 8

请参阅有关鸡蛋掉落拼图的完整文章 | DP-11 了解更多详情!