Matricea tridimensională în PYTHON

La programare când am învăţat să definim vectori ni s-a spus că vectorul este un şir de elemente omogene. Ceva mai târziu, ni s-a spus că şi lista elste un şir de elemente omogene, dar alocate dinamic. Rezultă, ca o abordare mai generală că vectorul este o listă, dacă vrem să facem alocarea dinamică a memoriei în care sunt stocate elementele sale, pentru a răspunde cerinţelor de programare modernă. Tot la programare ni s-a spus că matricea este un vector de vectori, căci liniile matricei sunt elemente omogene, în sensul că au acelaşi număr de componente. Rezultă că o matrice este o listă de liste.
O matrice tridimensională este privită:
- ca un vector de matrice,
- ca o matrice de vector,
- ca un vector de vectori de vectori,
- ca o listă de liste de liste.
Să ne imaginăm un oraş cu străzi perpendiculare. Într-un dreptunghi format de străzi, un dezvoltator a construit blocuri la linie. Fiecare linie are n blocuri. Între două străzi sunt m linii de blocuri. Am obţinut matricea de blocuri. Fiecare bloc are k etaje, fiind considerat un vector. Avem imaginea matricei de vectori, deci lista de liste de liste are corespondent în viaţa cotidiană, dacă vrem.
Un exemplu de program pentru calcule cu o matrice tridimensională este:



#
# Liste de liste de liste sau
# matrice tridimensionala
#
Lista_de_lista_de_lista = [[[1,2,3,10],
                            [4,5,6,20],
                            [7,8,9,30]],
                           [[10,11,12,1],
                            [13,14,15,2],
                            [16,17,18,3]],
                           [[19,20,21,4],
                            [22,23,24,5],
                            [25,26,27,6]],
                           [[-19,-20,-21,-4],
                            [-22,-23,-24,-5],
                            [-25,-26,-27,-6]],
                           [[-10,-11,-12,-1],
                            [-13,-14,-15,-2],
                            [-16,-17,-18,-3]]]
Nr_lista_de_lista_de_lista = len(Lista_de_lista_de_lista)
Nr_lista_de_lista = len(Lista_de_lista_de_lista[0])
Nr_lista = len(Lista_de_lista_de_lista[0][0])
print('Numar de liste de liste (matrice in lista) =',
print('Numar de liste în lista (linii in matrice) =', Nr_lista_de_lista)
print('Numar de elemente în lista (coloabe in matrice) =', Nr_lista)
#
# calcul suma elemente din lista de liste de leiste
# (calculul sumei elementelor din toate matricele)
#
Suma_totala = 0
for i in range(Nr_lista_de_lista_de_lista):
   for j in range(Nr_lista_de_lista):
      for k in range(Nr_lista):
         Suma_totala += Lista_de_lista_de_lista[i][j][k]
print('Suma elementelor din lista de lista de lista =', Suma_totala)
Suma_matrice = [ 0 ] * Nr_lista_de_lista_de_lista
for i in range(Nr_lista_de_lista_de_lista):
   Suma_matrice[i]
   for j in range(Nr_lista_de_lista):
      for k in range(Nr_lista):
         Suma_matrice[i] += Lista_de_lista_de_lista[i][j][k]
   print('Suma elementelor din matricea', i, ' =', Suma_matrice[i])
#
# calcul sume de pe liniile matricelor din lista de matrice
#
for i in range(Nr_lista_de_lista_de_lista):
   for j in range(Nr_lista_de_lista):
      Suma_linie_ij = 0
      for k in range(Nr_lista):
         Suma_linie_ij += Lista_de_lista_de_lista[i][j][k]
      print('Suma elementelor din atricea', i,
' si linia',j, ' =', Suma_linie_ij)



Rezultatele afişate sunt:

Numar de liste de liste (matrice in lista) = 5
Numar de liste în lista (linii in matrice) = 3
Numar de elemente în lista (coloabe in matrice) = 4
Suma elementelor din lista de lista de lista = 105
Suma elementelor din matricea 0 = 105
Suma elementelor din matricea 1 = 132
Suma elementelor din matricea 2 = 222
Suma elementelor din matricea 3 = -222
Suma elementelor din matricea 4 = -132
Suma elementelor din atricea 0 si linia 0 = 16
Suma elementelor din atricea 0 si linia 1 = 35
Suma elementelor din atricea 0 si linia 2 = 54
Suma elementelor din atricea 1 si linia 0 = 34
Suma elementelor din atricea 1 si linia 1 = 44
Suma elementelor din atricea 1 si linia 2 = 54
Suma elementelor din atricea 2 si linia 0 = 64
Suma elementelor din atricea 2 si linia 1 = 74
Suma elementelor din atricea 2 si linia 2 = 84
Suma elementelor din atricea 3 si linia 0 = -64
Suma elementelor din atricea 3 si linia 1 = -74
Suma elementelor din atricea 3 si linia 2 = -84
Suma elementelor din atricea 4 si linia 0 = -34
Suma elementelor din atricea 4 si linia 1 = -44
Suma elementelor din atricea 4 si linia 2 = -54


Un program ceva mai complicat are definite mai multe matrice şi implementează operaţii de adunare matrice tridimensionale, scădere matrice tridimensionale, înmulţire matrice tridimensionare, dar şi verificarea dacă matricele tridimensionale sunt cazuri particulare, precum matricea tridimensională nulă sau matricea tridimensională cu elemente de aceeaşi valoare.






(Afişat azi 24 aprilie 2022 ora 17,50
 Terminat azi 25 aprilie 2022 la ora 11,00 )
revenire