Предоставляется коллекция из N размерных координат. Пример ниже:
{2,3,4}
Это можно представить как трехмерный массив с 2x, 3y и 4z; может быть любое количество измерений. В этом примере всего 24 узла. Каждый узел может быть проиндексирован с помощью {x, y, z}. Чтобы получить доступ к 5-му узлу, предоставленные индексы будут {0, 1, 0} на основе таблицы ниже.
## | x y z
0 1 2
-----------
0 | 0 0 0
1 | 0 0 1
2 | 0 0 2
3 | 0 0 3
4 | 0 1 0
5 | 0 1 1
6 | 0 1 2
7 | 0 1 3
8 | 0 2 0
...
23 | 1 2 3
Цель этого приложения - работать в обратном направлении, чтобы определить индекс, если ему присвоен номер узла.
Если запрашивается индекс «y» 8-го узла, программа должна вывести «2».
При условии следующего ввода:
{2,3,4}|8|1
<List of Coordinates>|<Node>|<Index>
Следующее должно быть напечатано:
2
Вы можете предположить, что ввод будет предоставлен удобным способом на выбранном вами языке и не требует проверки границ. Например, вы можете предположить, что предоставленный индекс выбора (в данном примере «y») действителен по отношению к предоставленным координатам. Вы можете использовать индексирование на основе 0 или 1; пример предполагает 0 на основе.
Это своего рода обратная сторона этого вопроса: индекс многомерного массива