在过去的8年中,我一直在编程,现在我只是想知道,如果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/mpqc/trunk/mpqc/src/src/src/lib/chemistristion/qcc/lmp2/lmp2/lmp2/lmp2.cc?revision=9342&view = marksmarkup&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     } 

最明显的示例是体素空间的列表... 3 + 1 = 4个维度:)

在逻辑上,持有Ultima III中所有地牢的阵列将是一个4维数组。每个地牢都是三维细胞网格,它们的大小都是相同的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top