【发布时间】:2012-07-21 03:20:20
【问题描述】:
我只是在阅读The Two Egg Problem:
两个鸡蛋问题
您将获得两个鸡蛋,并可以进入一座 100 层高的建筑物。两个鸡蛋是一样的。目的是找出鸡蛋从该楼层的窗户掉出时不会破裂的最高楼层。如果一个鸡蛋掉下来并且没有破裂,它就完好无损,可以再次掉下来。然而,一旦一个鸡蛋被打破,那就是那个鸡蛋。
如果一个鸡蛋从
n地板上掉下来时碎了,那么它也会从上面的任何地板上碎掉。如果一个鸡蛋在坠落中幸存下来,那么它会在任何比这更短的坠落中幸存下来。问题是:你应该采取什么策略来最小化找到解决方案所需的鸡蛋滴数?。 (最坏的情况是什么?)
我一直跟着,直到“看,我可以做三个”部分。作者指出,在第一个鸡蛋破裂后,它会退化为 2-egg 问题,并且可以递归解决。
很好,但是当使用 3 个鸡蛋而不是 2 个(对于第一个鸡蛋)时,我们不想选择更大的步长吗?我们从哪一层扔第一个鸡蛋?
有 1 个鸡蛋,我们必须从 1 楼开始。
使用 2 个鸡蛋,我们求解 n(n+1)/2=k 并向上取整,其中 n 是起始楼层,k 是楼层数。
有了 3... 我无法想出一个公式。
再想一想,有 2 个鸡蛋,最大掉落数等于我们从第一个鸡蛋掉落的楼层数。例如,有 2 个鸡蛋和 100 层,解决方案是 14,这意味着我们从 14 层掉落第一个鸡蛋,如果它破裂,我们必须再掉落 13 次,从 1 到 13 层。
用 3 个鸡蛋,解决方案是 9(如图所示)。但是我们不想把第一个鸡蛋扔到 9 楼,我们可以把它扔得更高,因为我们不必在中间进行 1 秒的迭代。
如果我们再次从 14 楼扔出去,它坏了,那么我们就递归。 n(n+1)/2=k 其中k 现在是 13... 但是这给了我们 4.815,如果我们 ceil 和那个加上我们之前的下降,我们得到 6,这低于实际的解决方案,所以这里有问题...
【问题讨论】:
-
您能添加文章的简短描述吗?至少是标题,而不是“这篇文章”……为了上下文和“我们为什么要费心看它”?
-
@RolazaroAzeveires 描述在我问题的底部,不是吗?
-
也许吧。我们怎么知道?你开始离题“我可以做三个”!做什么?三什么? “作者指出,在第一个鸡蛋破裂后”。蛋?!你在推理过程中开始一个问题......
-
@RolazaroAzeveires 是的。这个问题已经 4 岁了 :-) 我批准了你的编辑。