美文网首页进击的Python工具癖程序员
两个玻璃球 测试极限高度

两个玻璃球 测试极限高度

作者: zhaoolee | 来源:发表于2018-01-10 17:20 被阅读524次

    一道有趣的智力题目:

    已知,玻璃球从某高楼落到地面会摔碎,楼的最大高度为100层,给你两个玻璃球,请你最快的测出,能使玻璃球摔碎的最低楼层...


    两个玻璃球

    思路1:蛮力法

    如果用蛮力法, 从1楼,2楼,3楼,一层一层,抛球测试,肯定能测出最低楼层,但效率太低...

    思路2: 二分法

    用经典的二分法,第一个球可能在50层掉了坏掉,第二个球在25层坏掉,然后损失了所有的球,也没有得出最后的答案...

    小启示:

    我们使用显微镜的时候,会先使用低倍镜粗调让被观察的物体进入视野,然后使用高倍镜精细调整,让被观察的物体在视野内变清晰...

    比较靠谱的做法:

    我们可以把两个小球当做高倍镜和低倍镜, 先使用第一个小球(相当于低倍境),以每次10层的跨度,依次抛到地面,观察结果, 10层, 20层, 30层, 40层...., 如果在50层抛出的时候,第一颗小球摔破了,则说明玻璃球的极限高度在40层到50层之间, 再使用第二颗小球(相当于物镜), 从41层,42层,43层... ,依次抛出,如果第二颗小球在第43层摔破,则43层为小球摔破的极限高度!

    据说google曾用上面的题目,作为面试题, 来考验面试者的工程思维!

    相关文章

      网友评论

        本文标题:两个玻璃球 测试极限高度

        本文链接:https://www.haomeiwen.com/subject/nlbonxtx.html