You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从二维数组生成仅支持横竖移动的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:41:40