El uso práctico de las matrices de n-dimensional, donde (N> 3)
-
30-09-2019 - |
Pregunta
He estado programando desde hace 8 años y ahora me estaba preguntando que si hay algún uso práctico de la matriz n-dimensional, donde N> 3.He sólo puede Visualizar de una estructura de datos que es menor o igual a 3 dimensions.Has cualquiera utiliza más de 3 dimensiones en cualquier programa? ¿hay usos prácticos de una matriz que está más allá ND 3d? Si es así por favor, puesto algunas muestras.
Solución
El ejemplo recuerdo que sólo decente estaba en el texto 1982 Oh! Pascal ! Que le da una idea de lo raro que ha estado en mi experiencia.
El ejemplo era un sistema de mantenimiento de existencias en los pantalones vaqueros podrían ser indexados por
inventory[sex][size][length][color][fit] = number_received
que está sólo un poco artificial. Usted tendría ningún problema con una base de datos estructurada de manera tal, sino que tiene un aspecto divertido como código.
Otros consejos
tomar casi cualquier cosa de la física, donde tensores son comunes, por ejemplo la relatividad general, la química computacional, la física cuántica.
http://en.wikipedia.org/wiki/Tensor#Applications
Tensor con rango 4 es común por ejemplo.
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 }
El ejemplo más obvio es una lista de espacios de voxel ... 3 + 1 = 4 dimensiones:)
Una matriz que sostiene todos los calabozos en Ultima III lógicamente sería una matriz de 4-dimensional. Cada mazmorra es una cuadrícula tridimensional de células, y son todos del mismo tamaño.