【发布时间】:2017-09-19 12:12:27
【问题描述】:
假设我有 m 个鸡蛋,并想知道 n 层 (n>=2) 建筑物中的哪些楼层可以安全掉落鸡蛋,以及会导致鸡蛋在着陆时破裂。
有几个假设:
- 在跌倒后幸存下来的鸡蛋会留在一楼,可以再次使用。我必须下到一楼去收集幸存的鸡蛋。
- 打碎的鸡蛋不能再使用。
- 跌倒对所有鸡蛋的影响都是一样的。
- 如果鸡蛋在掉落时破裂,那么如果从更高的窗户掉落,它也会破裂。
- 如果一个鸡蛋在坠落中幸存下来,那么它会在较短的坠落中幸存下来。
- 鸡蛋从最高楼层掉落时会破裂,而从一楼掉落时不会破裂。
我上楼梯难,下容易。
如何最大限度地缩短在较高楼层行驶的距离?
【问题讨论】:
-
最小化什么?最坏情况、一般情况还是其他情况?
-
在最坏的情况下最小化距离。
-
您似乎可以通过以下方式参数化问题:完整掉落的鸡蛋数量、您持有的鸡蛋数量、您当前所在的楼层、您知道安全的最高楼层以及你知道的最低楼层是不安全的。然后使用 DP。
-
@PaulHankin 不需要 DP。这是纯粹的数学。
-
@user58697 我很想看到这个问题的纯数学解决方案。你在某处写过文章吗?
标签: algorithm dynamic-programming