n次元アレイの実際の使用、ここで(n> 3)
-
30-09-2019 - |
質問
私は過去8年間プログラミングを行ってきましたが、N> 3.3が3次元以下のデータ構造を視覚化できるn次元アレイの実際的な使用があるかどうかを疑問に思っていました。 。どのプログラムでも3つ以上の次元を使用していましたか?3Dを超えたND配列の実用的な使用はありますか?その場合、いくつかのサンプルを投稿してください。
解決
私が思い出す唯一のまともな例は1982年のテキストにありました おー!パスカル! それはあなたに私の経験でどれほど珍しいことであったかについてのいくつかのアイデアを与えてくれます。
例は、ジーンズをによってインデックスにすることができる在庫維持システムでした
inventory[sex][size][length][color][fit] = number_received
わずかに考案されています。このような方法で構造化されたデータベースに問題はありませんが、コードとして面白く見えます。
他のヒント
一般的な相対性理論、計算化学、量子物理学など、テンソルが一般的な物理学からほとんど何でも取り上げます。
http://en.wikipedia.org/wiki/tensor#applications
たとえば、ランク4のテンソルは一般的です。
http://www.oonumerics.org/ftensor/ftensor.pdf
333 double
334 LMP2::compute_ecorr_lmp2()
335 {
336 Timer tim("ecorr");
337
338 sma2::Index r("r"), s("s");
339 sma2::Array<0> ecorr;
340 double ecorr_lmp2 = 0.0;
341 for (my_occ_pairs_t::const_iterator iter = my_occ_pairs_.begin();
342 iter != my_occ_pairs_.end();
343 iter++) {
344 sma2::Index i(iter->first-nfzc_);
345 sma2::Index j(iter->second-nfzc_);
346 if (j.value() > i.value()) continue;
347 double f;
348 if (i.value() != j.value()) f = 2.0;
349 else f = 1.0;
350 ecorr.zero();
351 ecorr() += f * 2.0 * K_2occ_(i,j,r,s) * T_local_(i,j,r,s);
352 ecorr() -= f * K_2occ_(i,j,s,r) * T_local_(i,j,r,s);
353 ecorr_lmp2 += ecorr.value();
354 }
355
356 msg_->sum(ecorr_lmp2);
357
358 return ecorr_lmp2;
359 }
最も明白な例は、ボクセルスペースのリストです... 3 + 1 = 4寸法:)
Ultima IIIのすべてのダンジョンを保持している配列は、論理的に4次元アレイになります。各ダンジョンはセルの3次元グリッドであり、すべて同じサイズです。
所属していません StackOverflow