如果您有一个固定大小 (N) 的 3D 空间,积分坐标在 [0,N[ ,您如何将这些 (x,y,z) 坐标转换为单个线性索引 [0,N*N*N[ , 其中一个坐标 (x,y,z) 到它的下一个邻居 (x-1,y,z), (x+1,y,z), ... (26 个邻居) 的平均距离被最小化,比较到简单的“索引 = x + N*y + N*N*z”公式?
在我的情况下,一个昂贵的公式是一个可接受的解决方案,因为 N 是固定的并且不是太大,所以我可以一次计算映射并缓存结果,如果它很昂贵。
我需要这个的原因是我试图根据邻近度压缩相同的值,因此将相邻值放在数组中可以提高压缩率。
如果您可以指向一些Java代码,那就更好了...