Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 멱등 행렬을 확인하는 프로그램

<시간/>

행렬 M[r][c]가 주어졌을 때 'r'은 행의 개수를 나타내고 'c'는 r =c가 정방행렬을 이루는 열의 개수를 나타냅니다. 주어진 정사각형 행렬이 멱등 행렬인지 확인해야 합니다. 여부.

멱등 행렬

행렬 'M'을 멱등 행렬이라고 합니다. 행렬 'M'에 자체를 곱한 경우에만 동일한 행렬 'M', 즉 M * M =M을 반환합니다.

아래 주어진 예와 같이 -

C++에서 멱등 행렬을 확인하는 프로그램

위의 행렬이 자체적으로 곱해지고 동일한 행렬을 반환한다고 말할 수 있습니다. 따라서 행렬은 I멱등 행렬입니다. .

예시

입력:m[3][3] ={ {2, -2, -4}, {-1, 3, 4}, {1, -2, -3}}출력:IdempotentInput:m[3 ][3] =={ {3, 0, 0}, {0, 2, 0}, {0, 0, 3} }출력:멱등성이 아님

알고리즘

StartStep 1 -> #define size 3Step 2 -> 행렬 곱셈을 위한 함수 선언 void 배수(int arr[][size], int res[][size]) Loop For int i =0 and i  멱등성 여부를 확인하는 함수 선언 bool check(int arr[][size]) 선언 int res[size][size] multiply(arr, res) 루프 For int i =0 and i  main()에서 선언 int arr[크기][크기] ={{1, -1, -1}, {-1, 1, 1}, {1, -1, -1}} IF (check(arr)) 멱등 행렬을 인쇄합니다. Else 멱등 행렬이 아님을 인쇄합니다. 

예시

#include#define size 3 using namespace std;//matrix multiplication.void 배수(int arr[][크기], int res[][크기]){ for (int i =0; i <크기; i++){ for (int j =0; j <크기; j++){ res[i][j] =0; for (int k =0; k <크기; k++) res[i][j] +=arr[i][k] * arr[k][j]; } }}//멱등성 또는 notbool 검사 check(int arr[][크기]){ int res[크기][크기]; 곱하기(arr, res); for (int i =0; i  

출력

멱등 행렬