Domanda

Sono stati di programmazione per gli ultimi 8 anni e ora mi chiedevo che se c'è qualche uso pratico di matrice N-dimensionale, dove N> 3.Mi può solo visualizzarne una struttura di dati che è inferiore o uguale a 3 dimensions.Has una qualsiasi utilizzato più di 3 dimensioni in qualsiasi programma? Esistono usi pratici di una matrice ND che è oltre 3d caso affermativo si prega di inviare alcuni campioni.

È stato utile?

Soluzione

L'unico decente esempio mi ricordo era nel testo 1982 Oh! ! Pascal che vi dà un'idea di quanto sia raro è stato nella mia esperienza.

L'esempio è un sistema di scorta di mantenimento in cui i jeans possono essere indicizzati da

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

, che è solo leggermente forzata. Avresti alcun problema con un database strutturato in modo tale, ma ha un aspetto divertente come codice.

Altri suggerimenti

Prendere quasi tutto dalla fisica, dove tensori sono comuni, ad esempio la relatività generale, chimica computazionale, la fisica quantistica.

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

Tensor con rango 4 è comune, per esempio.

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'esempio più evidente è un elenco degli spazi voxel ... 3 + 1 = 4 dimensioni:)

Un array che tutti segrete in Ultima III dovrebbe logicamente essere una matrice 4-dimensionale. Ogni sotterraneo è una griglia tridimensionale di cellule, e sono tutti della stessa dimensione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top