Matrice rare ca tuole

În PYTHON se lucrează cu tuple.
Acestea se definesc prin:
nume = ( element_1, element_2, ...,element_n)
Elementele sunt diferite ca tip.
A = (1, 2, 3, 4, 5)
B = (“casa”, “masa”, “elefant”, “elev”)
Elementele sunt de diferite tipuri.
C = (1,“casa” 2, “masa”, 3, “elefant”, 4, “elev”, 5)
D = (1, 2, [8, 4, 6], (“casa”, “masa”, “elefant”, “elev”), -1, -2, [“8“, “4“,“ 6“])
Exemplificarea lucrului cu tuple se realizează folosind reprezentarea matricelor rare cu ajutorul tripletelor (linie, coloană, valoare element nenul).
Înseamnă că o matrice rară cu 100 linii şi 100 coloane cu 200 de elemente nenule se va reprezenta prin 200 de triplete şi nu prin 10.000 de elemente din care 9.000 sunt cu valoare zero. programul de mai jos arată cum se reprezintă o matrice rară, cum se calculează gradul de încărcare şi cum se tipăreşte matricea rară.
Programul este:



#
# Liste de tuple in PYTHON
#
Matrice = [[17, 0,0,0, 0,0,33],
           [ 0, 0,0,2, 0,0,-2],
           [ 0, 0,5,0, 0,0, 0],
           [44, 0,0,0,-18,0, 0],
           [ 0, 0,0,0, 0,0,33]]
Mat_rara = [(0, 0, 17), (0, 6, 33), (1, 3, 2), (2, 2, 5), (3, 0, 44), (3, 4, -18), (4, 6, 33)]
Nr_nenule = len(Mat_rara)
print('Numar elemente nenule in matricea rara este: ', Nr_nenule )
Max_lin = Mat_rara[0][0]
for i in range(Nr_nenule):
   if Max_lin < Mat_rara[i][0]:
      Max_lin = Mat_rara[i][0]
Max_col = Mat_rara[0][1]
for i in range(Nr_nenule):
   if Max_col < Mat_rara[i][1]:
      Max_col = Mat_rara[i][1]
Max_col += 1
Max_lin += 1
print('Numarul de coloane este:', Max_col, '\n', 'Numarul de linii este:', Max_lin)
Grad_umplere = Nr_nenule/(Max_lin * Max_col) * 100
print('Grad de umplere este: ', Grad_umplere, '%')
print('\n Matricea rara este:', '\n')
k = 0
for i in range(Max_lin):
   for j in range(Max_col):
      if (i==Mat_rara[k][0]) and (j==Mat_rara[k][1]):
         print('%6.2f'%Mat_rara[k][2], end=' ')
         k += 1
      else:
         print('%6.2f'%0, end=' ')
   print('\n')
print('\n Final de program', '\n')



Rezultatele afişate sunt:

Numar elemente nenule in matricea rara este: 7
Numarul de coloane este: 7
Numarul de linii este: 5
Grad de umplere este: 20.0 %
Matricea rara este:
17.00 0.00 0.00   0.00    0.00 0.00 33.00
 0.00 0.00 0.00   2.00    0.00 0.00  0.00
 0.00 0.00 5.00   0.00    0.00 0.00  0.00
44.00 0.00 0.00   0.00  -18.00 0.00  0.00
 0.00 0.00 0.00   0.00    0.00 0.00 33.00
Final de program


Vor urma programe de lucru cu matrice rare folosind doar tuple.


(Afişat azi 07 mai 2022 ora 16,50)
revenire