鸡蛋掉落问题如何归还地板

问题描述 投票:0回答:0

在所有关于 k 个鸡蛋和 n 层楼的鸡蛋掉落问题的文献中,我找不到任何解决方案可以返回鸡蛋会从中打破的实际楼层......我只找到了生成最少步数的解决方案find 鸡蛋会从哪里破裂。

对于那些不熟悉的人,问题陈述大致如下:给定一栋有 n 层的建筑物,有第 j 层,鸡蛋从第 j 层掉下时会破裂(并且这个鸡蛋从第 j 层以上的所有楼层掉落时都会破裂,因为出色地)。假设你有 k 个鸡蛋。使用最少的下落次数,鸡蛋会从什么楼层破掉?

2 个鸡蛋和 n 层楼的解决方案似乎众所周知;我很好奇 k 个鸡蛋和 n 个楼层的更一般情况。识别实际最低楼层的算法是什么?我相信有一种算法可以在 O(n^{1/k}) 时间内实现这一点。对于两个鸡蛋问题,在 O(n^{1/2}) 或 O(sqrt(n)) 时间内有一个众所周知的解决方案。

我的方法可以这样总结,似乎可行(但我似乎无法适当地分析运行时间,所以我不知道效率如何):

while k > 2, meaning you have more than 2 eggs:
    do "binary search" on the floors, splitting in half each time.  if an egg breaks, decrement k.
on the remaining "candidate" floors:
    do the solution to the two-egg problem to generate the minimum floor
algorithm math
© www.soinside.com 2019 - 2024. All rights reserved.