【发布时间】:2017-08-16 21:34:28
【问题描述】:
在阅读了 10 多个关于将整个数组从 2D 转换为 1D 以及反之亦然的线程之后,我想知道是否有一个数学公式,不需要迭代来返回一对的索引位置用于排序的二维数组的整数。
我的“网格”始终是正方形的,可以是任意大小(在本例中为 3x3),并且我有一个已排序的人类友好值块,我需要从中检索我所谓的“真正的 1D 索引” " 像这样:
"Human-friendly" coordinates| Java 2D Indices | True 1D indices
[1,1],[1,2],[1,3], ==> [0,0],[0,1],[0,2], ==> 0 , 1 , 2
[2,1],[2,2],[2,3], ==> [1,0],[1,1],[1,2], ==> 3 , 4 , 5
[3,1],[3,2],[3,3], ==> [2,0],[2,1],[2,2], ==> 6 , 7 , 8
所以我需要一个方法为我的班级提供以下结果:
我输入 1,1 并返回 0, 我输入 3,2 并返回 7, 我输入 2,3 并返回 5, 等等等等……
我玩过六个方程式,我尝试将坐标添加到前一行索引的平方,但我永远无法为网格中的每个单元格获得正确的结果。我缺少一些特殊的运算符或数学函数吗?
谢谢。
【问题讨论】: