如何找到`i * 16 + j`的反函数?

时间:2014-10-30 21:16:36

标签: arrays indexing

我正在索引数组,找到2-d元素的函数是i * 16 + j:

function ArrayIndex(i,j) {
    return i*16 + j;
}

我使用这样的函数如下:

matrix[ArrayIndex(5,6)] // example

如何找到此IndexToIj的反函数:

function IndexToIj(index) {
   return index/16 - j  //  (??????????)
}

这不正确,但我尽了最大努力。与i*16 + j相反的是什么?此函数返回i的{​​{1}}和j

1 个答案:

答案 0 :(得分:2)

这是一个简单的等式: index = i * 16 + j

逆的:

i = (index - j) / 16

j = index - i * 16