繁体   English   中英

将N * M * K数组的索引转换为N,M和K值?

[英]Convert Index of N*M*K array to N, M and K values?

假设我有一个3*3*3 3D阵列

如果我在数组的位置[1,1,1]上有一个元素,我可以通过1*3*3 + 1*3 + 1 = 13找到索引

但是我需要做相反的事情 我需要将13转换为[1,1,1] 我怎么做?

使用模运算

 13 / 3 / 3 == 1 // 1st index
 13 / 3 % 3 == 1 // 2nd index
 13 % 3 == 1     // 3d index

其中/整数除法%余数

编辑:让我们概括为

  # you have M = N = K = 3
 [M, N, K] array

和任意value (在您的情况下为13

  M-th index = value / K / N # % M can be dropped 
  N-th index = value / K % N
  K-th index = value % K    

万一mD阵列

 [N1, N2, ..., Ni, ..., Nm]

我们有

 i-th index = value / Nm / Nm-1 / ... / Ni+1 % Ni

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM