文章原先发表在:http://blog.163.com/cyhuoyan@126/blog/static/1623497552013368914262/
(1)题目是这样的:一个100层的大厦,你手中有两个相同的玻璃球。从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来得知那个临界层面。
这里的最优策略指的是在这种策略下无论哪个临界层面在第几层,测试的次数最少。我一开始就是把题意理解错了,给了一个非最优解,后来看了CU那的讨论后才明白了是用动态规划来做,并可以把题目扩展为n层大厦用k个玻璃球来测试。
设F(n,k)为用k个玻璃球来测试n层大厦的临界层的最少次数,状态转移方程如下:
F(n,k)=min{max{F(r,k-1), F(n-r,k)}+1, 1<=r<=n}
边界条件:F(n,1)=n-1, F(1,k)=F(0,k)=0
状态转移方程可以这样来考虑,假设在n层楼中的第r层抛一次(对应方程中的"+1")

本文介绍了一个利用动态规划策略解决寻找100层大厦临界楼层的问题,通过两个玻璃球的最优策略推导,进而探讨了三个玻璃球的情况。利用状态转移方程F(n,k),给出了边界条件和递推关系,并分析了如何通过递归关系找到最佳测试策略,以最小的测试次数确定临界楼层。"
137197296,8753399,C# 实现系统托盘图标及菜单功能,"['C#开发', 'Windows应用', '桌面应用', '编程实践']
确定楼层问题公式推导&spm=1001.2101.3001.5002&articleId=9763317&d=1&t=3&u=b42dc51a29554fa381d9d8b5d31b8bfc)
2802

被折叠的 条评论
为什么被折叠?



