(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]
1D配列([5]形状)
arr = [ nil, nil, nil, "*", nil ]
arr.flatten[3] # => "*"
arr.index2coordinates(3) # => [3]
どうすればそのようなArray#index2coordinates
方法を行うことができますか?ある意味で、この質問はベクトルを整数に変換する質問の逆です。どうもありがとう。