Я пытаюсь придумать уравнение для математического определения «уплощенного индекса» массива из «сложенного индекса».Обратите внимание на следующий пример в Ruby.
matx = [[[ 1, 2, 3, 4],
[ 5, 6, 7, 8]],
[[ 9,10,11,12],
[13,14,15,16]]]
В этом примере matx
- это трехмерная матрица, а элемент 7
расположен в matx[0][1][2]
.Однако в следующем примере:
matx.flatten! # => [1, 2, 3, 4, 5, 6, 7, 8,
# 9, 10, 11, 12, 13, 14, 15, 16]
Теперь элемент 7
расположен в matx[6]
.
Итак, по сути, я ищу способ, учитывая размерыматрицы и набора индексов для конкретного элемента, преобразуйте из сложенной матрицы в плоскую матрицу. Обратное тоже было бы здорово, но я полагаю, что способ получить аналогичный (но по сути обратный) способу получения этого результата. Я понял, что обратное на самом деле не функция, потому что нет способаобязательно указать разницу в том, что 5 соответствует [2,3] или [3,2] и т. д. Так что я не буду вдаваться в подробности.