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

C++ 프로그램에서 동일한 행렬의 Row-major 및 Column-major order를 추가하여 형성된 행렬의 자취 찾기

<시간/>

이 튜토리얼에서는 행과 열의 주요 행렬로 구성된 행렬의 자취를 찾는 프로그램을 작성할 것입니다.

행렬의 순서가 주어졌을 때 행과 열의 주행렬을 어떻게 형성하는지 봅시다.

주문 - 3 x 3

행 주요 행렬 -

1 2 3
4 5 6
7 8 9

열 주요 매트릭스 -

1 4 7
2 5 8
3 6 9

행 및 열 주요 행렬이 있습니다. 이제 두 행렬을 모두 추가해야 합니다. 그리고 결과 행렬의 자취는 우리가 찾고 있는 결과입니다.

문제를 해결하는 코드를 작성해 봅시다. 문제 해결을 완료하려면 다음 4단계를 완료해야 합니다.

  • 행 우선 행렬을 만듭니다.

  • 열 우선 행렬을 만듭니다.

  • 두 행렬을 모두 추가하고 결과 행렬을 저장합니다.

  • 결과 행렬의 자취를 찾아 결과를 인쇄합니다.

예시

코드를 봅시다.

#include <iostream>
#include <bits/stdc++.h>
#include <regex>
using namespace std;
int traceOfRowAndColumnMajorMatrices(int m, int n) {
   int row_major[m][n], column_major[m][n], addition_result[m][n], count = 1;
   for (int i = 0; i < m; i++) {
      for (int j = 0; j < n; j++) {
         row_major[i][j] = count;
         count += 1;
      }
   }
   count = 1;
   for (int i = 0; i < m; i++) {
      for (int j = 0; j < n; j++) {
         column_major[j][i] = count;
         count += 1;
      }
   }
   for (int i = 0; i < m; i++) {
      for (int j = 0; j < n; j++) {
         addition_result[j][i] = row_major[i][j] + column_major[i][j];
      }
   }
   int trace = 0;
   for (int i = 0; i < m; i++) {
      for (int j = 0; j < n; j++) {
         if (i == j) {
            trace += addition_result[i][j];
         }
      }
   }
   return trace;
}
int main() {
   int m = 3, n = 3;
   cout << traceOfRowAndColumnMajorMatrices(m, n) << endl;
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

30

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.