【问题标题】:What is shortest distance between 2 nodes in a matrix?矩阵中两个节点之间的最短距离是多少?
【发布时间】:2011-03-27 00:18:37
【问题描述】:

我有一个 5x5(25 个节点)的矩阵。是否有公式可以找到矩阵中 2 个节点 i 和 j 之间的最短距离?

注意:1 个节点与其邻居之间的距离为 1 个单位。

==================

在我的观察中,这 2 个节点 i 和 j 之间有许多距离相同的路径 所以我不确定是否有一个公式来计算最短的?如果有人可以提供帮助,我将不胜感激。谢谢。

例如:

* * * i *
* * * * *
* * * * *
* * * * *
* j * * *

i 和 j 之间的最短距离是 6 个单位。

【问题讨论】:

  • 什么距离,什么是邻居?发布一个您正在寻找的示例怎么样?
  • 请澄清:您要计算最短距离还是最短路径?您可以沿对角线移动还是只能沿 x/y 方向移动?
  • 您可以使用多种措施
  • @sebastiangeiger:仅在 x/y 方向

标签: tree matrix nodes units-of-measurement


【解决方案1】:

我相信您需要的是L1 距离,也称为Manhattan distance。所以如果你的两个节点有矩阵索引(i1,j1)和(i2,j2),那么它们之间的最短距离是|i1-i2|+|j1-j2|。

这是当然的,前提是你不能沿对角线移动。

【讨论】:

    【解决方案2】:

    我认为普通的Pythagorean theorem 可以正常工作。获取您所在位置和您想去的位置之间的 X、Y 差异;这会给你一个负值或正值。从这里你应该能够根据需要向上/向下左/右移动,直到你在同一行/列中。无法弄清楚如何获得上标;但这会起作用。

    a^2 + b^2 = c^2
    

    【讨论】:

    • 这通常被称为欧式距离
    • 我没有意识到距离有一个名字;我只知道用来找到它的公式。感谢您的信息!
    【解决方案3】:

    看看Metric Space

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多