N次元座標のコレクションが提供されます。以下に例を示します。
{2,3,4}
これは、2x、3y、4zの3次元配列と考えることができます。次元はいくつあってもかまいません。この例では、合計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
このアプリケーションの目的は、ノード番号が指定されている場合、逆方向に作業してインデックスを決定することです。
8番目のノードの「y」インデックスを要求された場合、プログラムは「2」を出力するはずです。
次の入力が提供された場合:
{2,3,4}|8|1
<List of Coordinates>|<Node>|<Index>
以下を印刷する必要があります。
2
入力は、選択した言語で便利な方法で提供され、境界チェックを必要としないと想定できます。たとえば、提供された選択インデックス(例では「y」)が提供された座標に対して有効であると想定する場合があります。0または1ベースのインデックスを使用できます。この例では、0ベースを想定しています。
これは、この質問の逆のようなものです: 多次元配列のインデックス