将(x,y)映射到单个数值

sss*_*sss 4 java algorithm

我想要一个函数将(x,y)值映射到单个数字值和Java中相应的反向映射.

例如(2,34)应该映射到某个值100,如果我们有100,我们应该能够找到(2,34).

pax*_*blo 6

好吧,如果你有一个最大值,那么是的.说y限于0 ... 9999,那么可以这样做:

int num = x * 10000 + y;
Run Code Online (Sandbox Code Playgroud)

(当然假设结果符合类型 - long如果需要,你可以升级到更宽的类型).然后,回去:

int x = num / 10000;
int y = num % 10000;
Run Code Online (Sandbox Code Playgroud)


peo*_*oro 5

如果你有一个上限(比如100越高对x(x,y)),那么你可以关联的任何n一对价值的(x,y)具有这种功能:n = x * 100 + y

如果你没有任何限制,事情会变得更加困难。将属于R, 的数与数相关联的一种方法R^2是枚举对角线。看看这个例子,它是一个矩阵,其中的(x,y)单元格包含n与之相关的:

1  2  4  7  11 ..
3  5  8  12 ..
6  9  13 ..
10 ..
..
Run Code Online (Sandbox Code Playgroud)


Her*_*ery 1

您应该看一下HashMap。类似的东西HashMap<Integer, List<Integer>>似乎很适合你的情况。