6. ÎNMULȚIREA A DOUĂ MATRICI
Condiție importantă!
Putem înmulți A (n×m) cu B (m×p) doar dacă numărul de coloane din A = numărul de linii din B. Rezultatul C va fi de dimensiune n×p. Formula: C[i][j] += A[i][k] * B[k][j]
#include <iostream> using namespace std; int main() { // A este 2x3, B este 3x2 => C va fi 2x2 int A[2][3] = {{1,2,3}, {4,5,6}}; int B[3][2] = {{7,8}, {9,10}, {11,12}}; int C[2][2] = {}; // initializat cu 0 int n=2, m=3, p=2; // Trei bucle imbricate for (int i = 0; i < n; i++) // liniile din C for (int j = 0; j < p; j++) // coloanele din C for (int k = 0; k < m; k++) // suma produselor C[i][j] += A[i][k] * B[k][j]; cout << "Rezultat C = A x B:\n"; for (int i = 0; i < n; i++) { for (int j = 0; j < p; j++) cout << C[i][j] << "\t"; cout << "\n"; } // C[0][0]=58, C[0][1]=64, C[1][0]=139, C[1][1]=154 return 0; }
Vizualizare operație:
A (2×3)
1
2
3
4
5
6
×
B (3×2)
7
8
9
10
11
12
=
C (2×2)
58
64
139
154
| Buclă | Variabilă | Rol |
|---|---|---|
| Exterioară | i | Parcurge liniile matricei rezultat C |
| Mijloc | j | Parcurge coloanele matricei rezultat C |
| Interioară | k | Calculează suma produselor pentru C[i][j] |