Question

Je suis la programmation depuis les 8 dernières années et maintenant je me demandais s'il y a une utilisation pratique de la matrice N-dimensionnelle, où N> 3.J'ai ne visualisent d'une structure de données qui est inférieure ou égale 3 dimensions.Has une utilisé plus de 3 dimensions dans un programme? Existe-t-il des utilisations pratiques d'un tableau ND qui est au-delà de la 3D? Si oui s'il vous plaît poster quelques échantillons.

Était-ce utile?

La solution

Le seul exemple décent je me souviens était dans le texte 1982 Oh! Pascal! qui vous donne une idée de la façon dont il a été rare dans mon expérience.

L'exemple était un système de gestion des stocks où les jeans peuvent être indexés par

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

qui est légèrement arrangea. Vous auriez pas de problème avec une base de données structurée de telle façon, mais il ne semble drôle code.

Autres conseils

Prenez presque tout de la physique, où tenseurs sont communs, par exemple la relativité générale, la chimie computationnelle, la physique quantique.

http://en.wikipedia.org/wiki/Tensor#Applications

Tensor avec le rang 4 est commun par exemple.

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     } 

L'exemple le plus évident est la liste des espaces de voxels ... 3 + 1 = 4 dimensions:)

Un tableau contenant tous les donjons dans Ultima III serait logiquement une matrice quatre dimensions. Chaque donjon est une grille en trois dimensions des cellules, et ils sont tous de la même taille.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top