java - 确定从给定位置到网格边缘的最短距离

标签 java matrix distance

例如,如果我有 5 x 5 网格并且位置为 13。我想找到每个方向上每条边的绝对距离(不包括对角线)。所以从 13 到左边是 3,到右边是 1,到底部是 2,到顶部是 2。我该如何处理这个问题?

 0  1  2  3  4 
 5  6  7  8  9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24

最佳答案

距顶部的距离为行,

int row = (int)(13/5); // 2

距左侧的距离为列,13 除以 5 余数。

int col = (int)(13%5); // 3

距右侧的距离为该列减去总列数 (5)

int colFromRight = 5-col-1; // 1

距底部的距离为该行减去总行数 (5)

int rowFromBottom = 5-row-1; // 2

编辑:

这是一个可能有帮助的小图表

这是一个一维数组,我们希望将其视为二维数组。它有 2 行和 3 列,总共 6 个元素。在我们的程序中,它是一个像这样的一维数组,我使用方括号[]来显示外观而不是语法。

[1][2][3][4][5][6]

从视觉上看是这样的

[1][2][3]
[4][5][6]

因此,为了获取位置 5 的行,我们说

int location = 5;
int row = floor(location/3);

正如您所见,每当行变为 1+ 3 的倍数时,行号就会增加。

<小时/> 对于列来说,它是相同的,但有一个余数。

int location = 5;
int column = location%3;

这里,每次位置达到 3 时,余数都会返回到 0,并且列会重新开始(本质上表示新行)。

关于java - 确定从给定位置到网格边缘的最短距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464895/

相关文章:

r - tm 包 : Output of findAssocs() in a matrix instead of a list in R

python - 半正弦函数的 Python 数学库中出现错误

java - 使用蓝牙获取两个 Android 设备之间的距离

javascript - 如何根据沿线的距离在 Google map 折线上添加标记?

java - 未找到声音文件,不在目录中?

java - 如何将网页中的小程序包含在不同的目录中?

java - 使用 putIfAbsent 重叠 ConcurrentHashMap put

Java Tetris - 使用旋转矩阵的旋转

r - 在大矩阵中计算非对角线平均值的更快方法

java - 在java中如何识别我是在基于Unix的系统还是Windows上