有的时候发现一个解不一定难,但是证明是最优解却有点困难。

得多学点数学了,因为只知其然,不知其所以然的人很难到更高的地方,或许我这人就这德行了,不知道所以然就睡不着觉。

说出来可能没人信,我想了一个问题快一个月了,还没思路,继续搞,嗯。哈哈,这就是思考的乐趣吗?

周末学习点证明最优解,然后继续learn C。

 

哈哈,我思考了那一个月的问题就是谷歌的那道面试题:

Q: 只给你二个鸡蛋,你能上100层楼,你想知道鸡蛋的硬度。鸡蛋可能很硬或很脆弱,如果鸡蛋从第m层掉下而没破裂,而从第m+1层掉下就破裂了,那么这个鸡蛋的硬度就是m。你需要找出这个m和在最坏情况下最少试验次数。(经典鸡蛋问题)

我还没学到各种算法,比如二分,动态规划。但我觉得这道题里面肯定有它必然的数学规律,而我就是想从这种感性认识出发,看看有没有什么必然的规律。

后来有点明白了。我的理解是,既然要求找出最坏的情况,且要求最少实验次数,那么你第一次扔鸡蛋最坏的情况就是你最后扔鸡蛋的总次数。

假设你第一次扔鸡蛋而导致的最坏的次数为A,如果之后的次数比A大,那么显然这种解法的次数要增加,之前第一次的情况就会没有任何用处。

如果之后的次数比A小,最后用完的A之后,楼层不一定能确定完。

按照这个思路确定下去,既是后来的答案:

 n+n-1+n-2+....+1 >= 100.

n(n+1)*1/2>=100 

n>=14

posted on 2012-05-18 08:09  laskfla  阅读(182)  评论(1编辑  收藏  举报