Cho ma trận vuông M[r][c] với r hàng, c cột, r = c. Kiểm tra M có phải ma trận đơn vị hay không.
Ma trận đơn vị
Ma trận đơn vị (Unit matrix) kích thước nxn, các phần tử đường chéo chính = 1, phần tử ngoài đường chéo = 0.
Ví dụ:
$$I1=\begin{bmatrix}1 \end{bmatrix},\\ I2=\begin{bmatrix}1 & 0 \\0 & 1 \end{bmatrix},\\ I3=\begin{bmatrix}1 & 0 & 0 \\0 & 1 & 0 \\0 & 0 & 1 \end{bmatrix},\\In=\begin{bmatrix}1 & 0 & 0 & ... & 0 \\0 & 1 & 0 & ... & 0\\0 & 0 & 1 & ... & 0\\. & . & . & ... & .\\. & . & . & ... & .\\0 & 0 & 0 & ... & 1\end{bmatrix}$$
Ví dụ
Đầu vào: m[3][3] = {{1,0,0},{0,1,0},{0,0,1}} -> yes
Đầu vào: m[3][3] = {{3,0,1},{6,2,0},{7,5,3}} -> no
Thuật toán
BAT DAU
B1: Hàm identity(int num)
khai báo row, col
Vòng lặp row=0; row
Ví dụ
#include <stdio.h>
int identity(int num) {
int row, col;
for (row = 0; row < num; row++) {
for (col = 0; col < num; col++) {
if (row == col)
printf("%d ", 1);
else
printf("%d ", 0);
}
printf("\n");
}
return 0;
}
int main() {
int size = 4;
identity(size);
return 0;
}
Kết quả
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1