在8个谜题|C++中寻找曼哈顿距离的目标坐标
Finding target coordinates for Manhattan Distance in 8 Puzzle | C++
我正试图找到一种方法来计算两个包含0到8之间数字的2D数组之间的曼哈顿距离。假设其中一个数组(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坐标向下增加。
您可能指的是二维数组。你的代码int矩阵[3][3]中已经有了类似的东西
您所问的问题不是很清楚,因为您不是在寻找"两个2D阵列之间的曼哈顿距离",而是在寻找"阵列中两个特定元素之间的曼哈顿间距"。例如,在您的情况下,2到6之间的距离将计算如下:
获取两个元素的二维坐标:
坐标2:x2=1,y2=0(2的x和y坐标)
6的坐标:x6=2,y6=1(6的x和y坐标)
获得曼哈顿距离:
曼哈顿距离=腹肌(x6–x2)+腹肌(y6–y2)
替补:腹肌(2–1)+腹肌(1–0)
答案:2
相关文章:
- QT在错误的班级中寻找空位
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 正在寻找C++不可变的hashset/hashmap
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 寻找地理和伤害意味着超载
- 计算所有对之间的曼哈顿距离
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- Levenshtein 两个文件的距离花费了太多时间
- 寻找一种更好的方法来表示无符号字符数组
- 我正在寻找一种优雅的方式来从元组向量创建tuple_element向量
- 寻找闰年的逻辑是如何运作的?
- 两个有符号数字之间的距离
- C++:寻找"returning address of local variable..."的更正
- 计算车辆之间的距离并设置速度,使距离保持不变,例如 5 米
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 在C++中寻找排列和组合
- 曼哈顿距离比曼哈顿距离+线性冲突效果更好
- 在8个谜题|C++中寻找曼哈顿距离的目标坐标
- 寻找汉明数——不是代码或距离
- 如何使用特征库计算曼哈顿距离