我在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 ++中,但显然答案可以是任何东西,算法是我的意思。)