带规则的网格中2点的距离

时间:2018-09-02 23:09:37

标签: algorithm grid shortest-path

我在2D网格中工作。不允许对角移动,因此如果要对角移动,则必须走两次。没有障碍阻挡任何道路。

网格大小可能足够大,我无法也不想使用路径查找算法。

我很感兴趣是否有任何快速算法可以计算出彼此之间有两点的距离。这是否存在,还是我必须使用某种路径查找来逐步遍历所有步骤并计算它们?

示例: 在从(0,0)到(4,4)的5x5网格上,您必须执行8次。您可以在此处找到一个看上去很愚蠢(抱歉)的可视化文件-您从0块开始,每一步花费一个。

.loader {
  color: #0079f2;
  font-family: Consolas, Menlo, Monaco, monospace;
  font-weight: bold;
  font-size: 30vh;
  opacity: 0.8;
}
.loader span {
  display: inline-block;
  -webkit-animation: pulse 0.4s alternate infinite ease-in-out;
          animation: pulse 0.4s alternate infinite ease-in-out;
}
.loader span:nth-child(odd) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
@-webkit-keyframes pulse {
  to {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0.5;
  }
}
@keyframes pulse {
  to {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0.5;
  }
}

所以,我正在寻找一种无需手动计算每个步骤的快速算法,但是我找不到某种数学魔术:)

(Ps:我尝试在SO上寻找它,但是所有解决方案都有些不同或在答案中找到了路径。我正在寻找某种类似于O(1)的解决方案。在C ++中,但显然答案可以是任何东西,算法是我的意思。)

0 个答案:

没有答案