免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: kaios
打印 上一主题 下一主题

[算法] 一道笔试题! [复制链接]

论坛徽章:
0
41 [报告]
发表于 2008-08-05 19:44 |只看该作者

回复 #15 benjiam 的帖子

不理解,请再指点

论坛徽章:
0
42 [报告]
发表于 2008-08-05 20:49 |只看该作者
结果的确有问题。

切法和你的要求是有关系的 比如3*3. 又不能这么切了。

论坛徽章:
0
43 [报告]
发表于 2008-08-05 23:18 |只看该作者
3刀切成面,再3刀切成条,再3刀就成小块了。共9刀

论坛徽章:
0
44 [报告]
发表于 2008-08-06 06:22 |只看该作者

回复 #7 kewenliang 的帖子

算法算法就是要有良好的数学头脑。 不必区分是几何题还是程序题。

论坛徽章:
0
45 [报告]
发表于 2008-08-06 08:28 |只看该作者
我算也是9刀

论坛徽章:
0
46 [报告]
发表于 2008-08-06 11:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
47 [报告]
发表于 2008-08-06 12:29 |只看该作者

上界是9刀,下界是7刀

至于能不能达到下界的7刀,我也想不清楚

总之,对任意一块,规则地切一刀面的个数加倍,因此,需要尽量让不需要分割的块晚出现。就是说1*1*1的块最好在最好在最后产生。

于是推测用刀最少的方法很可能应该是俯视方向切,然后叠好后再正视方向切,然后再从侧面切....

论坛徽章:
0
48 [报告]
发表于 2008-08-06 12:38 |只看该作者

刚才想的有问题

现在想想
第一刀的时候从任意的方向切都是等价的。因此只有两种情况:
(5,5,5) -> (2,5,5) + (3,5,5)
或是
(5,5,5) -> (1,5,5) + (4,5,5)

现在,如果我能把3*5*5的切成1*1*1的,那把2*5*5的放在3*5*5的相应的切的方向,一定可以用同样的刀数把2*5*5的切成1*1*1的

因此,需要的是Min{ max[ (2,5,5), (3,5,5) ] , max [ (1,5,5), (4,5,5)] } = (3,5,5)

然后就考虑不下去了...

判断不出(2,5,5) 和 (3,3,5)哪个用刀更少

论坛徽章:
0
49 [报告]
发表于 2008-08-06 13:16 |只看该作者
原帖由 suliu 于 2008-8-5 23:18 发表
3刀切成面,再3刀切成条,再3刀就成小块了。共9刀

不是这么简单的。这样切出来才64块。
理论上最少是7刀,2^7=128>125,不过最容易想到的是9刀,要叠起来切才行。

论坛徽章:
0
50 [报告]
发表于 2008-08-06 13:22 |只看该作者
原帖由 suliu 于 2008-8-5 23:18 发表
3刀切成面,再3刀切成条,再3刀就成小块了。共9刀


赞成这个、、、想不到再少的刀数了。

要直观效果的话,大家可以回去买块豆腐试试,呵呵、、

[ 本帖最后由 pilixuanke 于 2008-8-6 13:35 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP