Eine Sammlung von N Dimensionskoordinaten wird bereitgestellt. Ein Beispiel ist unten:
{2,3,4}
Dies kann als dreidimensionales Array mit 2x, 3y und 4z betrachtet werden; Es kann eine beliebige Anzahl von Dimensionen geben. Im Beispiel gibt es insgesamt 24 Knoten. Jeder Knoten kann mit {x, y, z} indiziert werden. Um auf den 5. Knoten zuzugreifen, wären die bereitgestellten Indizes {0, 1, 0} basierend auf der folgenden Tabelle.
## | 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
Der Zweck dieser Anwendung besteht darin, rückwärts zu arbeiten, um einen Index zu bestimmen, wenn eine Knotennummer angegeben wird.
Wenn Sie nach dem "y" -Index des 8. Knotens gefragt werden, sollte das Programm "2" ausgeben.
Mit folgender Eingabe:
{2,3,4}|8|1
<List of Coordinates>|<Node>|<Index>
Folgendes sollte gedruckt werden:
2
Sie können davon ausgehen, dass die Eingabe in einer Sprache Ihrer Wahl auf bequeme Weise bereitgestellt wird und keine Überprüfung der Grenzen erforderlich ist. Beispielsweise können Sie davon ausgehen, dass der angegebene Index der Wahl (im Beispiel "y") in Bezug auf die angegebenen Koordinaten gültig ist. Sie können eine 0- oder 1-basierte Indizierung verwenden. Das Beispiel setzt 0 basierend voraus.
Dies ist eine Art Umkehrung dieser Frage: Index eines mehrdimensionalen Arrays