我正在写一个A*算法,它可以解决Java中的8个难题,到目前为止,我已经使用错位的瓦片数量实现了DFS,BFS,A*,我只需要使用曼哈顿距离的启发式来实现它。
正如您可能知道的那样,曼哈顿距离是每个瓦片相对于其当前位置及其在目标状态中的索引的位移之和。
我用谷歌搜索了一下,发现了这些关于流程主题的堆栈:
返回以下代码:
int manhattanDistanceSum = 0;
for (int x = 0; x < N; x++) // x-dimension, traversing rows (i)
for (int y = 0; y < N; y++) { /
我正在解一个谜题,如下所示。
有一个5x5矩阵,其中一个元素为"-“,所有其他矩阵都是整数。
我可以用"-“直线(不是对角线)交换任何元素。
最后,我必须对矩阵进行排序。
以下是我所遵循的步骤:
1) Receive user input for 5x5 matrix
2) Locate the position of "-"
3) Find the eligible candidates to be swapped with "-"
4) Apply some algorithm and find the most eligible candi
我最近在Lua实现了A*路径搜索,但由于使用曼哈顿方法计算H的成本,我正在经历糟糕的路径。
我想知道是否有任何其他方法来计算节点的成本。以下是我目前正在使用的内容:
function CalcG(A,B)
if type(A) == "table" then
A = A.Pos
end
if type(B) == "table" then
B = B.Pos
end
return (A-B).Magnitude
end
function CalcH(A,B)
if typ
我正在尝试计算一个大型2D输入的最大曼哈顿距离,输入由(x,y)s组成,我想做的是在不到O(n^2)的时间内计算这些坐标之间的最大距离,我可以通过遍历所有元素来计算O(n^2),例如:
*(两点(X1,Y1)和(X2,Y2)之间的曼哈顿距离为:|X1-X2| + |Y1-Y2|)
for ( 0 -> n )
for ( 0-> n )
{ // here i calculate |Xi - Xj| + |Yi - Yj| which is maximum }
但对于非常大的输入,它不会有效地工作:(
有没有人有更好的算法?
使用Python3.6。当使用曼哈顿距离进行相似性度量时,我没有得到符合逻辑的结果。即使与皮尔逊和欧几里得相关的结果相比,欧几里德和曼哈顿的单位看起来不一样?
我正在开发一种粗略的推荐模型,通过测量首选项X的用户评级与同一项的其他用户评级之间的相似性来推荐相似的项目,并推荐与提出请求的用户非常匹配的其他用户的项目。
我得到的结果是
Pearson:
[('Men in Black II', 0.12754201365635218), ('Fried Green Tomatoes', 0.11361596992427059), ('Miami Vice
在3D数组中,对角线元素是0,即k=1为10时为akk=0。我需要在剩余的矩阵中填充距离最接近的0。 我遇到了广度优先搜索,但我可以不使用数据结构吗?(不熟悉数据结构) unsigned short d = 10, r = 10, c = 10;
double*** a = new double** [d];
for (int i = 0; i < d; ++i) {
a[i] = new double* [r];
for (int j = 0; j < r; ++j)
a[i][j] = new double[c];
}
所以我有一个游戏,基本上所有的东西都是在一个大网格内的一个正方形。很容易检查一个正方形是否在一个中心是另一个正方形的盒子里:
*** x
*o* --> x is not in o's square
***
**x
*o* --> x IS in o's square
***
这可以通过简单地减去o和x的坐标,然后取其中的最大坐标,并将其与半边长度进行比较。
现在我想做同样的事情,但是检查x是否在o的钻石中,如下所示:
*
**x
**o** --> x IS in o's diamond
***
*
考虑到钻石