首页 > 代码库 > 100层高楼摔2个鸡蛋的问题?

100层高楼摔2个鸡蛋的问题?

一幢大楼共计100层,某种类型的鸡蛋从某一楼层及其以上楼层摔下来时会被打破,从该层楼(即临界楼层)以下楼层摔下该鸡蛋,鸡蛋不会出现破损。现给你2个完全一样的该种类型的鸡蛋,问:如何通过这2个鸡蛋找到该临界楼层?

解:

  关键:每一层都有可能是临界层,且可能性相同。

  假设第一个鸡蛋从x层摔下破了,最多还需要x-1次尝试,一共x次;

  第一个鸡蛋没破,再从x+x-1层摔下,如果破了,最多还需x-2次尝试,一共x次;

  第一个鸡蛋没破,再从x+x-1+x-2层摔下,如果破了,最多还需x-3次尝试,一共x次;

  ……

  这样无论那一层楼为临界楼,都最多只需要x次得出。

     x+x-1+……+1=(x+1)*X/2>=100,x=14.

100层高楼摔2个鸡蛋的问题?