这篇文章总结很全,建议看看——https://www.cnblogs.com/XJT2018/p/11539661.html
1、玻璃球与楼层
题目:有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层??
答:https://blog.csdn.net/coolws123/article/details/22998879
假设问题存在最优解,这个最优解的最坏情况尝试次数是x次
那么第一次时我们就得从第x层开始,因为
若从x+1层扔后碎了,后面还需要尝试x次,总次数x+1,不符合
若从x-1层扔后碎了,后面需要x-2次,总次数x-1,不符合
若就从x层扔后碎了,后面需要x-1次,总次数x次,符合
若第一次扔后没碎,那么问题变成在100-x层楼往下扔,要求尝试次数不得超过x-1次,由于最坏尝试次数变成了x-1,那么第二次尝试的楼层跨度变成x-1层,理由同上,同理若没碎,则第三次x-2……
则当前楼层数为:x层->x+x-1层->x+x-1+x-2层
因此可以列出方程式:x+(x-1)+(x-2)+…+1=100 —àx=14
左边的多项式是各次扔鸡蛋的楼层跨度之和。由于假设尝试x次,所以这个多项式共有x项,右边是总的楼层数100。
由此题引申的M层楼,N个鸡蛋问题呢?(动态规划)
最优解的最坏情况下尝试次数是