質問

私は過去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

http://mpqc.svn.sourceforge.net/viewvc/mpqc/trunk/mpqc/src/lib/chemistry/qc/lmp2/lmp2.cc?revision = 9342&view=markup&arprev=9492

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次元グリッドであり、すべて同じサイズです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top