我想找到一个轮胎数量最少的门槛;
让我们说:我有一个120层的公寓,我们有一块玻璃。如果扔掉它,我想找到玻璃在哪个楼层会破裂。换句话说,我们想要找到玻璃开始破裂的阈值楼层。在这方面,我们可以使用返回最佳结果的二进制搜索。 (binary log120=7
尝试)但二分搜索可以打破6眼镜找到它。
考虑到我们只有两个眼镜并且想要找到一个阈值底限,那么最小化尝试次数的最佳解决方案是什么?
我应该补充一点,当我们只有两个眼镜时,我们只能打破一个,而另一个应该找到确切的阈值。如果我们使用二分搜索,在最坏的情况下我们有60次尝试(如果阈值是59,我们将第一个放在60楼,然后从1楼开始到59)。更好的方法是在每10个楼层扔第一块玻璃。在最糟糕的情况下,我们有20次尝试(阈值是119楼,第一次尝试11次,第二次尝试9次)。
你能改善尝试次数吗?