Arrays 在3D lower中映射元素“;三角形“;线性结构
这是现有系统的三维版本Arrays 在3D lower中映射元素“;三角形“;线性结构,arrays,algorithm,matrix,indexing,Arrays,Algorithm,Matrix,Indexing,这是现有系统的三维版本 形状为(n,n,n)的三维数组M[x,y,z]应映射到仅包含x元素的平面向量。方程式的三维版本为 index := (z * (z+1) * (z+2)) / 6 + (y * (y+1))/2 + x 这是用户3386109答案的一个扩展,用于将具有形状(n,…,n)的任意维d数组映射为大小size(d,n)的向量,该向量只包含索引满足X\u 1的元素,非常感谢!你能简单地解释一下你是如何推导出6的吗?它看起来很容易扩展到任意维度。@但看起来确实可以扩展到其他维度。然
形状为
(n,n,n)
的三维数组M[x,y,z]
应映射到仅包含x元素的平面向量。方程式的三维版本为
index := (z * (z+1) * (z+2)) / 6 + (y * (y+1))/2 + x
这是用户3386109答案的一个扩展,用于将具有形状
(n,…,n)
的任意维d
数组映射为大小size(d,n)
的向量,该向量只包含索引满足X\u 1的元素,非常感谢!你能简单地解释一下你是如何推导出6的吗?它看起来很容易扩展到任意维度。@但看起来确实可以扩展到其他维度。然而,我还没有能够证明它的4D。3D的公式可以从wikipedia称之为的平方和中推导出来,这就是6的来源。为了完成3D的例子,你能给出当输入数组是(n,n,n)
时得到的向量的长度吗?@neo我相信这将是坐标(n,0,0)
的索引,即不在数组中的第一个坐标的索引。因此大小:=(n*(n+1)*(n+2))/6
谢谢!我刚刚计算出4D的情况:index:=(l*(l+1)*(l+2)*(l+3))/24+(k*(k+1)*(k+2))/6+(j*(j+1))/2+I
表示M[I,j,k,l]
,向量的大小为n*(n+1)*(n+2)/6*(n+3)/4
。24=6*4.