求一个matlab程序,运行时间越短越好 50

题目17:考察立方体两个角落间的最短距离。一只蜘蛛S坐在一个6×5×3的立方体屋子的一个角落里,一个苍蝇F坐在与之相对的角落里。如果只允许在屋子的表面行走的话,从S到F的... 题目17:考察立方体两个角落间的最短距离。
一只蜘蛛S坐在一个6×5×3的立方体屋子的一个角落里,一个苍蝇F坐在与之相对的角落里。如果只允许在屋子的表面行走的话,从S到F的最短“直线”距离是10,路线在图中标出。

但是,每个立方体都有三条可能的最短路径,而且最终的最短路径并不一定是整数。
考虑所有整数边长的立方体屋子,最大不超过M×M×M,当M=100时一共有2060个立方体的最短路径是整数,而且这也是解超过2000的最小的M;M=99时又1975个立方体的最短路径是整数。
找出解超过一百万的最小的M。
展开
 我来答
tianxiawulang
2014-06-17 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2562万
展开全部

楼主确定M=100的时候,有2060立方体(确切一点说,应该是长方体吧?)的最短路径是整数吗?我算出来的是4430个,而M=99时对应的是4289个。

 

我不敢肯定自己是对的,所以,建议从比较小的M入手,我们对比一下结果,先确定方法是正确的,再考虑进一步优化程序,以提高效率(对于比较大的M,涉及到内存和运行时间两方面问题,需要进一步研究)。

 

以下是我取M=3~10的时候,对应的最短路径是整数的立方体个数:

     3     2
     4     3
     5     3
     6     7
     7     9
     8    14
     9    20
    10    23

请楼主核实一下自己的答案,如果有异议,我们再来进一步对比分析。

更多追问追答
追问
我写出来一个程序,但是运行时间特别长,当M=100时,确实是2060个。做的时候需要排除掉重复的情况。比如a=1,b=2,c=3,与a=2,b=1,c=3是同一种情况,这两个长方体的长宽高是一样的。现在明白这个题目的意思了吗?要排除重复的情况.
追答

这个我明白,我说的就是剔除重复项之后的数。

 

但对于M比较大(比如100)的情况,要罗列出所有的组合太麻烦,所以我上面建议用小一些的M来比较我们的结果是否一致,如果不一致,再进一步分析哪个是对的。根据我的计算,刚好M=70的时候,最短路径是整数的立方体个数是2000。

 

我写的程序尽量使用向量化运算,效率还可以,G630的CPU,4G内存,XP系统,对于M=100,运行一次只需要0.1秒左右的时间。但如果M超过200,会遇到内存不足的问题,为了克服该问题,程序会复杂不少,效率也会受影响。

 

不妨再多贴一些M值的结果:

     3     2
     4     3
     5     3
     6     7
     7     9
     8    14
     9    20
    10    23
    11    26
    12    40
    13    44
    14    48
    15    61
    16    72
    17    76
    18    89
    19    96
    20   120

对于比较小的M,相信应该不会有太多出入,例如M=3的abc组合只有两种:

     3     1     3
     2     2     3

M=7的组合有9种:

     2     1     4
     3     1     3
     7     1     6
     2     2     3
     6     2     6
     5     3     6
     4     4     6
     7     5     5
     6     6     5

 

楼主可以看看是从哪个M开始,我们的结果不同的,并贴出相应的abc组合,然后我再拿我的结果和你对照。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乖乖隆的隆活宝
2017-06-16
知道答主
回答量:1
采纳率:0%
帮助的人:969
展开全部
可以说一下思想吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-06-16
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆枫heaven
2014-06-25
知道答主
回答量:23
采纳率:0%
帮助的人:12.7万
展开全部
呵呵。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式