智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6225|回复: 18
打印 上一主题 下一主题

策略问题

[复制链接]
跳转到指定楼层
1#
老陈 发表于 2020-4-10 05:05:51 来自手机 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 老陈 于 2020-4-9 15:19 编辑

有一家手机生产公司,为了测试手机的抗摔性能,他们选择了一栋100层楼的建筑,把手机从楼上往下扔,目的找到一个临界层,在这层不能摔坏,再高一层就摔坏。你最多只能用2部手机。让你制定一个方案,要求这个方案在最坏的情况下测试次数最少。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
2#
 楼主| 老陈 发表于 2020-4-11 05:12:16 来自手机 | 显示全部楼层
本帖最后由 老陈 于 2020-4-10 15:15 编辑
ahthwl 发表于 2020-4-9 19:32
这是数据结构里的动态规划类问题。
设方程f(x,y)为x个鸡蛋测试y层楼,那么f(1,y)=y
f(2,1)=1


这个思路很好,是胜利的开始。不过用鸡蛋测不出手机的抗摔性能。
3#
 楼主| 老陈 发表于 2020-4-11 17:08:02 来自手机 | 显示全部楼层
rahj 发表于 2020-4-10 20:05
原题可不就是测试从几楼丢下鸡蛋能碎吗

与鸡蛋有啥关系?
4#
 楼主| 老陈 发表于 2020-4-18 08:23:33 来自手机 | 显示全部楼层
本帖最后由 老陈 于 2020-4-17 18:31 编辑

这是我在微信朋友圈里看到的一道题,由于对我来说原题难度太大,当时我没做出来,所以我简化后发到这里。原题如下:
有一家手机生产公司,为了测试手机的抗摔性能,他们选择了一栋N层楼的建筑,把手机从楼上往下扔,目的找到一个临界层,在这层不能摔坏,再高一层就摔坏。你最多只能用M部手机。让你制定一个方案,要求这个方案在最坏的情况下测试次数最少。
5#
 楼主| 老陈 发表于 2020-4-27 09:06:56 来自手机 | 显示全部楼层
本帖最后由 老陈 于 2020-4-28 18:15 编辑

我们用
F(M,N)
表示N层楼M部手机的试验次数。
我们选择第一部手机从第K层扔下,
如果手机摔坏,试验次数为:
F(M-1,K-1)+1
如果手机没有摔坏,试验次数为:
F(M,N-K)+1
我们取其中较大的那个。
我们取K从1到N,得到N个数,取最小的数。就得到了
F(M,N)
有的城友会问
F(M-1,K-1)和F(M,N-K)是未知的啊?
不用担心,两个参数至少有一个比M或N小,我们可以先求参数小的。一直到(1,2),(2,1),(1,1),显然:
F(1,K)=K
F(K,1)=1


6#
 楼主| 老陈 发表于 2020-4-30 11:25:09 来自手机 | 显示全部楼层
rahj 发表于 2020-4-29 00:52
找到个M层楼N个鸡蛋的试验次数的解答,对付着看看
我觉得手算的难度在于递归嵌套,有空我也出个抽屉原理的 ...

摔鸡蛋很简单,1层楼摔下,鸡蛋肯定坏。
如果摔手机,手算也没有任何难度,就是计算量大。
具体做法:
比如1000层楼30部手机。
画一张30行,1000列的大表格。
把第一行和第一列填进数字,第1行都是列号,第1列都是1。
然后逐个由小到大填写F(M,N)到M行N列。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-5-6 15:35 , Processed in 0.040224 second(s), 7 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部