Cho hai ma trận M1[r][c] và M2[r][c]. Kiểm tra xem chúng có giống hệt nhau (identical) hay không. Hai ma trận giống nhau khi: cùng số hàng/cột, và M1[i][j] = M2[i][j] với mọi i,j.
Ví dụ
Input: a[4][4] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}}
b[4][4] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}}
Output: ma trận giống nhau
Input: a[4][4] = {{2,2,2,2},{2,2,1,2},{3,3,3,3},{3,3,3,3}}
b[4][4] = {{2,2,2,2},{2,2,5,2},{3,3,3,3},{3,3,3,3}}
Output: ma trận không giống nhau
Cách tiếp cận
Duyệt cả hai ma trận, so sánh a[i][j] == b[i][j]. Nếu đúng với tất cả thì giống nhau.
Thuật toán
BẮT ĐẦU
#define n 4
Hàm kiemTra(int a[][n], int b[][n])
Với i từ 0 đến n-1
Với j từ 0 đến n-1
Nếu a[i][j] != b[i][j] trả về 0
Trả về 1
main()
Khai báo a, b
Nếu kiemTra(a,b) in "giống nhau" ngược lại "không giống nhau"
KẾT THÚC
Ví dụ mã C++
#include <bits/stdc++.h>
#define n 4
using namespace std;
int kiemTra(int a[][n], int b[][n]){
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (a[i][j] != b[i][j])
return 0;
return 1;
}
int main(){
int a[n][n] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}};
int b[n][n] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}};
if (kiemTra(a, b))
cout << "ma trận giống nhau";
else
cout << "ma trận không giống nhau";
return 0;
}
Kết quả đầu ra
ma trận giống nhau