Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1967|回复: 7

[VBA] 用VBA计算最短路线长度

[复制链接]
发表于 2016-12-29 17:41 | 显示全部楼层 |阅读模式
用VBA计算最短路线长度

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-12-29 19:26 | 显示全部楼层
车站-E-A-B-C-D-I-J-L-M-K-G-H-G-F-N-车站
不知道对不对?

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-12-29 21:22 | 显示全部楼层
wanao2008 发表于 2016-12-29 19:26
车站-E-A-B-C-D-I-J-L-M-K-G-H-G-F-N-车站
不知道对不对?

不知道对不对,道理是什么
回复

使用道具 举报

发表于 2016-12-30 09:59 | 显示全部楼层
laoau138 发表于 2016-12-29 21:22
不知道对不对,道理是什么

这种地图必需要有重复路径,那么第一,要使重复路径最少,我这里只有一处;第二,要使重复路径最短,我这里只有1,是最短的。

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

发表于 2017-1-4 14:49 | 显示全部楼层
2楼确实已经是最短路程的路径之一了。

递归遍历求解,一共是有6个最短路程的解:

路程        景点数        路径
32        17        车站,E,A,B,C,D,I,J,L,M,K,G,H,G,F,N,车站
32        17        车站,N,M,L,J,I,D,C,H,G,K,G,F,B,A,E,车站
32        17        车站,N,M,L,J,K,G,F,G,H,I,D,C,B,A,E,车站
32        17        车站,N,M,L,J,K,G,H,I,D,C,B,A,B,F,E,车站
32        17        车站,N,M,L,J,K,G,H,I,D,C,B,A,E,F,E,车站
32        17        车站,N,M,L,J,K,G,H,I,D,C,B,A,E,F,N,车站

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

发表于 2017-1-4 15:42 | 显示全部楼层
这个题目写VBA事实上比较难。

因为路径中各个景点是允许重复的(也必定需要产生重复)

目前的递归算法中,引入以下限制条件:
1. 各个景点访问不超过2次(最大2次)
    需要记录各个景点的被访问次数

2. 不允许出现 A-B-A-B 这样近期重复的走法。
   即允许由A到B再返回A,但这以后再从A出发时就不允许直接再走B产生极度浪费无效路径。
   这个做法就稍复杂一些,需要对过去路径进行检查。

3. 对回到车站起点进行闭环时,要求满足所有景点对已被访问至少一次。

所以代码稍复杂了一些。

而且,需要首先编制 各景点之间的路径关系表。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-1-4 16:09 | 显示全部楼层
香川群子 发表于 2017-1-4 15:42
这个题目写VBA事实上比较难。

因为路径中各个景点是允许重复的(也必定需要产生重复)

高手中的高手,非一般可比
回复

使用道具 举报

 楼主| 发表于 2017-1-4 16:14 | 显示全部楼层
香川群子 发表于 2017-1-4 15:42
这个题目写VBA事实上比较难。

因为路径中各个景点是允许重复的(也必定需要产生重复)

说实话,你写的代码大部分看不懂,
只能暂时保存起来,希望以后能看懂吧


你写的代码已经保存了好多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 19:53 , Processed in 0.879564 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表