gpt4 book ai didi

c++ - 在 8 Puzzle | 中寻找曼哈顿距离的目标坐标C++

转载 作者:行者123 更新时间:2023-11-30 03:54:30 26 4
gpt4 key购买 nike

我试图找到一种方法来计算两个包含 0 到 8 之间数字的二维数组之间的曼哈顿距离。假设其中一个数组(8 拼图的目标)是:

1  2  3
4 5 6
7 8 0

我明白在 (x1 , y1) & (x2, y2) 之间, 这曼哈顿距离 = |x1 - x2| + |y1 - y2|

我的代码看起来像这样:

for(x = 0; x < 3; x++){
for(y = 0; y < 3; y++){
int value = matrix[x][y];
int targX; //Target X coordinate
int targY; //Target Y coordinate
int distX = abs(x - targX);
int distY = abs(y - targY);
mDist = mDist + distX + distY;
}
}

我无法找到一种方法来获取任何特定值的目标坐标。

最佳答案

n 的目标坐标是 ((n-1) div 3, (n-1) mod 3)

上述值将假设原点 (0,0) 位于左上角,即放置 1 的正方形。 X坐标向右增加,Y坐标向下。

关于c++ - 在 8 Puzzle | 中寻找曼哈顿距离的目标坐标C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29470768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com