5

私は過去8年間プログラミングを行ってきましたが、N>3のN次元配列の実用的な使用法があるかどうか疑問に思っていました。3次元以下のデータ構造しか視覚化できません。 。プログラムで3次元を超えるものを使用したことがありますか?3dを超えるND配列の実際の使用法はありますか?その場合は、サンプルを投稿してください。

4

4 に答える 4

3

一般相対性理論、計算化学、量子物理学など、テンソルが一般的である物理学からほとんどすべてのものを取り上げます。

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&pathrev=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     } 
于 2010-09-04T05:21:19.203 に答える
2

ウルティマIIIのすべてのダンジョンを保持する配列は、論理的には4次元配列になります。各ダンジョンはセルの3次元グリッドであり、すべて同じサイズです。

于 2010-09-04T05:58:04.777 に答える
2

最も明白な例は、ボクセルスペースのリストです... 3 + 1=4次元:)

于 2010-09-04T05:28:04.183 に答える
2

私が覚えている唯一のまともな例は、1982年のテキストOh!パスカル!これは、私の経験ではそれがどれほどまれであったかについてのいくつかのアイデアをあなたに与えます。

例は、ジーンズを次のようにインデックス化できる在庫管理システムでした。

 inventory[sex][size][length][color][fit] = number_received

これはほんの少しだけ考案されています。このように構造化されたデータベースには問題はありませんが、コードのように面白く見えます。

于 2010-09-04T05:30:35.140 に答える