如何从二维数组生成仅支持横竖移动的ASCII代价邻接矩阵?
没问题,我来帮你搞定这个邻接矩阵的生成,先把规则理清楚,再一步步生成你要的结果:
核心规则说明
- 移动范围:只能在水平左右或垂直上下的相邻节点之间移动,斜着跨节点的操作是不允许的
- 代价计算:每次移动的代价是目标节点的ASCII值(你给的示例用了简化版:把
a对应1、b对应2...也就是ASCII值减去96,下面我会同时提供简化版和原始ASCII值版的矩阵) - 邻接矩阵规则:矩阵的每一行和每一列都对应一个节点;如果从节点X能直接移动到节点Y,矩阵中
X行Y列的位置就填Y的代价,否则填0(自己到自己也填0)
你的目标二维数组排列(16节点)
先确认下节点的二维排列(你给出的16个节点按4行4列排列最合理):
Row 1: a b c d Row 2: e f g h Row 3: j k l m Row 4: n o p q
简化版邻接矩阵(代价=目标节点ASCII值-96)
这里每个节点的代价简化为:a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, j=9, k=10, l=11, m=12, n=13, o=14, p=15, q=16
a b c d e f g h j k l m n o p q a 0 2 0 0 5 0 0 0 0 0 0 0 0 0 0 0 b 1 0 3 0 0 6 0 0 0 0 0 0 0 0 0 0 c 0 2 0 4 0 0 7 0 0 0 0 0 0 0 0 0 d 0 0 3 0 0 0 0 8 0 0 0 0 0 0 0 0 e 1 0 0 0 0 6 0 0 9 0 0 0 0 0 0 0 f 0 2 0 0 5 0 7 0 0 10 0 0 0 0 0 0 g 0 0 3 0 0 6 0 8 0 0 11 0 0 0 0 0 h 0 0 0 4 0 0 7 0 0 0 0 12 0 0 0 0 j 0 0 0 0 5 0 0 0 0 10 0 0 13 0 0 0 k 0 0 0 0 0 6 0 0 9 0 11 0 0 14 0 0 l 0 0 0 0 0 0 7 0 0 10 0 12 0 0 15 0 m 0 0 0 0 0 0 0 8 0 0 11 0 0 0 0 16 n 0 0 0 0 0 0 0 0 9 0 0 0 0 14 0 0 o 0 0 0 0 0 0 0 0 0 10 0 0 13 0 15 0 p 0 0 0 0 0 0 0 0 0 0 11 0 0 14 0 16 q 0 0 0 0 0 0 0 0 0 0 0 12 0 0 15 0
原始ASCII值版邻接矩阵(代价=目标节点ASCII值)
直接使用每个字符的原始ASCII值:a=97, b=98, c=99, d=100, e=101, f=102, g=103, h=104, j=106, k=107, l=108, m=109, n=110, o=111, p=112, q=113
a b c d e f g h j k l m n o p q a 0 98 0 0 101 0 0 0 0 0 0 0 0 0 0 0 b 97 0 99 0 0 102 0 0 0 0 0 0 0 0 0 0 c 0 98 0 100 0 0 103 0 0 0 0 0 0 0 0 0 d 0 0 99 0 0 0 0 104 0 0 0 0 0 0 0 0 e 97 0 0 0 0 102 0 0 106 0 0 0 0 0 0 0 f 0 98 0 0 101 0 103 0 0 107 0 0 0 0 0 0 g 0 0 99 0 0 102 0 104 0 0 108 0 0 0 0 0 h 0 0 0 100 0 0 103 0 0 0 0 109 0 0 0 0 j 0 0 0 0 101 0 0 0 0 107 0 0 110 0 0 0 k 0 0 0 0 0 102 0 0 106 0 108 0 0 111 0 0 l 0 0 0 0 0 0 103 0 0 107 0 109 0 0 112 0 m 0 0 0 0 0 0 0 104 0 0 108 0 0 0 0 113 n 0 0 0 0 0 0 0 0 106 0 0 0 0 111 0 0 o 0 0 0 0 0 0 0 0 0 107 0 0 110 0 112 0 p 0 0 0 0 0 0 0 0 0 0 108 0 0 111 0 113 q 0 0 0 0 0 0 0 0 0 0 0 109 0 0 112 0
小提示
如果你的二维数组排列不是4行4列,比如是2行8列,只需要调整相邻节点的判断逻辑,重新生成矩阵就行——核心就是只保留水平/垂直相邻的节点代价,其他填0。
内容的提问来源于stack exchange,提问作者UndyingJellyfish
相关产品推荐
相关产品推荐

