当我有一个数组(1D、2D、3D 或更多维度)时,我希望能够将索引(来自这个扁平数组)转换为它的坐标。
例如,考虑*
正方形:
3D 数组([2,3,2] 形状)
arr = [ [ [ nil, nil ],
[ nil, nil ],
[ nil, nil ] ],
[ [ "*", nil ],
[ nil, nil ],
[ nil, nil ] ] ]
arr.flatten[6] # => "*"
arr.index2coordinates(6) # => [1,0,0] or [1][0][0]
4D 数组([2,3,1,2] 形状)
arr = [ [ [ [ nil, nil ],
[ nil, "*" ],
[ nil, nil ] ] ],
[ [ [ nil, nil ],
[ nil, nil ],
[ nil, nil ] ] ] ]
arr.flatten[3] # => "*"
arr.index2coordinates(3) # => [0,0,1,1] or [0][0][1][1]
一维数组([5] 形状)
arr = [ nil, nil, nil, "*", nil ]
arr.flatten[3] # => "*"
arr.index2coordinates(3) # => [3]
我们怎么能做这样的Array#index2coordinates
方法?从某种意义上说,这个问题与Convert vector to integer问题的逆题。非常感谢。