정사각형 행렬 M[r][c]에서 'r'은 행의 수이고 'c'는 r =c인 열이므로 'M'이 단위 행렬인지 확인해야 합니다.
Identity Matrix
단위 행렬은 크기가 nxn인 정사각형 행렬의 단위 행렬로도 알려져 있습니다. 여기서 대각선 요소는 정수 값이 1이고 비대각 요소는 정수 값이 0입니다.
아래 주어진 예에서와 같이 -
$$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} $$
예시
Input: m[3][3] = { {1, 0, 0}, {0, 1, 0}, {0, 0, 1}} Output: yes Input: m[3][3] == { {3, 0, 1}, {6, 2, 0}, {7, 5, 3} } Output: no
알고리즘
Start Step 1 -> declare function for finding identity matrix int identity(int num) declare int row, col Loop For row = 0 and row < num and row++ Loop For col = 0 and col < num and col++ IF (row = col) Print 1 Else Print 0 End End Step 2 -> In main() Declare int size = 4 Call identity(size) Stop
예시
#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; }
출력
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1