多次元行優先順序の「インデックス -> オフセット」* 変換の逆を提供/参照できますか。また、(疑似)コードをいただければ幸いです。
例を挙げて、私の質問を促した特定の問題の単純化: 私は 3 次元のデータ階層を持っています。 N_a、N_b、および N_c よりも小さい。データを一次元配列で表現したい。行優先順の「オフセット」は、次のように与えられます。
int offset(a, b, c){
return a*N_b*N_c + b*N_c + c;
}
次に、逆変換とは何ですか。つまり、次のとおりです。
int a(int offset);
int b(int offset);
int c(int offset);
さらに、これをN次元の索引付けに一般化するにはどうすればよいですか? この質問を促した問題は 5 次元の問題です。
念のため、私は c/c++ で書いています。