| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2225 人关注过本帖
标题:鸡蛋问题,完全不懂算法
只看楼主 加入收藏
王小言
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-15
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:13 
鸡蛋问题,完全不懂算法
求c++的算法:Gardon有一些鸡蛋,他现在想知道这些鸡蛋的硬度。Gardon的家住在一座很高很高的大楼里,他现在要在这座大楼上测试鸡蛋的硬度。每个鸡蛋的硬度相同,鸡蛋的硬度定义为:如果鸡蛋从第m层上掉下来没有破裂,而从第m+1层上掉下来就破裂了,那么这个鸡蛋的硬度就是m。某个鸡蛋如果在实验中破裂了就永远的损失了。那么在最坏情况下他最少需要做多少次实验呢?他的鸡蛋数量是有限的。{各位前辈,这道题关乎我的命运呢,如果出不来的话我就被踢出工作室了~~~跪求~~~}
搜索更多相关主题的帖子: 鸡蛋 
2013-03-30 13:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
什么数据都没有,你自己觉得这种问题有解吗?
类似的问题我见过,比如 两只鸡蛋,一百层楼,求最佳策略
2013-03-30 14:17
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 
假设有 N层楼,第一次肯定在 N/2测试,失败就在 N/4测试,成功就在 3*N/4测试、、、、、、

所以最多测试 [logN + 1] 次

只是我的想法,算法很菜

[ 本帖最后由 azzbcc 于 2013-3-30 14:19 编辑 ]


[fly]存在即是合理[/fly]
2013-03-30 14:18
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用azzbcc在2013-3-30 14:18:05的发言:

假设有 N层楼,第一次肯定在 N/2测试,失败就在 N/4测试,成功就在 3*N/4测试、、、、、、
 
所以最多测试 [logN + 1] 次
 
只是我的想法,算法很菜
如果鸡蛋有无限多,你的这个二分法是对的。
如果楼高100层,只有两只鸡蛋可用,那么当依次在 9 22 34 45 55 64 72 79 85 90 94 97 99 100 层抛鸡蛋
2013-03-30 14:35
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
确实,鸡蛋数量会影响结果。

如果鸡蛋个数大于 [logN + 1],那肯定是用二分法,小于的话,我搞不来

貌似这个页面可以帮到你

http://blog.


[fly]存在即是合理[/fly]
2013-03-30 15:06
gfchen1819
Rank: 2
等 级:论坛游民
帖 子:22
专家分:48
注 册:2013-2-20
收藏
得分:0 
我顶3楼
2013-03-30 17:24
叶子一哥
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2012-7-25
收藏
得分:0 
顶5楼
2013-03-30 18:48
关关002
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-11-16
收藏
得分:0 
我顶5楼

我为自己带眼- -
2013-03-30 21:06
不要脸的猫
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:41
专家分:126
注 册:2012-6-20
收藏
得分:0 
同上……

埋骨何须桑梓地,人生无处不青山
2013-03-30 21:22
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
5楼中给的页面中提出的分析方法,想了一下,可以推广到大于两个鸡蛋的情况(用类似的思路分析,在摔碎鸡蛋的时候用鸡蛋数减一来递归)
这样的话 在楼主提出的问题不确定规格的情况下 可以给出对于楼层数为N 鸡蛋个数为k(>=2)的情况的通用算法
当鸡蛋个数大于1个时,按照公式算出最佳抛鸡蛋的楼层 抛出鸡蛋 根据结果 修改鸡蛋数量和新的楼层区间
当鸡蛋个数等于1个时,从楼层区间最底层逐层抛出鸡蛋

那个页面中提到的分析方法是对的,不过后面的递推过程我还没完全理清楚 不保证他最后给出的公式是正确的
关键是学习人家的方法 楼主可以试着去实现这样的算法 成功了 你就可以理直气壮的要求留下来了

人生是一场错过 愿你别蹉跎
2013-03-30 22:46
快速回复:鸡蛋问题,完全不懂算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051529 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved