n维数组的实际使用,其中(n> 3)
-
30-09-2019 - |
题
在过去的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
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维数组。每个地牢都是三维细胞网格,它们的大小都是相同的。
不隶属于 StackOverflow