Ma trận nhị phân là ma trận có tất cả các phần tử là giá trị nhị phân, tức là 0 hoặc 1. Ma trận nhị phân còn có thể được gọi là Ma trận Boolean, Ma trận quan hệ, Ma trận lôgic .
Ví dụ dưới đây
$$ \ begin {bmatrix} 0 &1 &0
\\ 1 &1 &0
\\ 1 &0 &1
\\ \ end {bmatrix} \:\:\:\:\:\:\:\:\:
\ begin {bmatrix}
0 &3 &0
\\ 1 &1 &0
\\ 1 &0 &2
\\ \ end {bmatrix} \\\ nhỏ Cái này \:là \:a \:Nhị phân \:Ma trận \:\:\:\:\:\:\:
Đây \:là \:không \:a \:binary \:matrix $$
Trong hình trên, ma trận đầu tiên bên trái là ma trận Nhị phân, ma trận còn lại có một số giá trị không phải là Nhị phân (0 hoặc 1) được đánh dấu màu đỏ, tức là 3 và 2 do đó không phải là ma trận nhị phân.
Ví dụ
Input: m[4][3] = { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 1, 1, 0, 0 } } Output: its a binary matrix
Phương pháp tiếp cận
Chúng ta có thể duyệt toàn bộ ma trận và kiểm tra tất cả các phần tử nếu 0 hoặc 1 thì in nó là ma trận nhị phân, nếu không thì in nó không phải là ma trận nhị phân.
Thuật toán
Start Step 1 -> define macros as #define row 3 and #define col 4 Step 2 -> Declare function to check if a matrix is binary matrix or not bool check(int arr[][col]) Loop For int i = 0 and i < row and i++ Loop For int j = 0 and j < col and j++ IF(!(arr[i][j] = 0 || arr[i][j] = 1)) return false End End End return true step 3 -> In main() Declare an array as int arr[row][col] = { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 1, 1, 0, 0 } } If (check(arr)) Print its a binary matrix Else Print its not a binary matrix Stop
Ví dụ
#include <bits/stdc++.h> using namespace std; #define row 3 #define col 4 //check if a matrix is binary matrix or not bool check(int arr[][col]){ for (int i = 0; i < row; i++){ for (int j = 0; j < col; j++){ if (!(arr[i][j] == 0 || arr[i][j] == 1)) return false; } } return true; } int main(){ int arr[row][col] = { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 1, 1, 0, 0 } }; if (check(arr)) cout << "its a binary matrix"; else cout << "its not a binary matrix"; return 0; }
Đầu ra
its a binary matrix