>백엔드 개발 >C++ >행렬의 대각선 합을 계산하는 C++ 프로그램

행렬의 대각선 합을 계산하는 C++ 프로그램

PHPz
PHPz앞으로
2023-09-07 20:01:021250검색

행렬의 대각선 합을 계산하는 C++ 프로그램

2차원 배열이나 행렬의 활용은 여러 분야에 매우 유리합니다. 행렬 행과 열은 2D를 정의하는 데 사용됩니다. 다차원 배열은 C++에서 행렬을 표현하는 데 사용됩니다. 이번 글에서는 구현 방법에 대해 알아보겠습니다. 주어진 정사각 행렬의 대각선 합을 계산하려면 C++를 사용하세요.

행렬에는 두 개의 대각선, 즉 주 대각선과 보조 대각선이 있습니다(때로는 주대각선과 부대각선이라고 함) 주대각선은 왼쪽 위에서 시작됩니다. 모서리(인덱스 [0, 0])를 오른쪽 하단 모서리(인덱스 [n-1, n-1])로 이동합니다. 여기서 n은 정사각형 행렬. 주대각선은 오른쪽 위 모서리(인덱스 [n-1, 0])에서 시작하여 왼쪽 아래 모서리에서 끝납니다. 코너(인덱스 [0, n-1])와 함께 요소의 합을 찾는 알고리즘을 살펴보겠습니다. 이 두 대각선.

행렬 대각선 합

의 중국어 번역은 다음과 같습니다.

행렬 대각선의 합

$$begin{bmatrix} 8&5&3개행 6 & 7& 1개행 2 & 4 & 9 끝{bmatrix},$$

으아악

이전 예에서는 하나의 3 x 3 행렬이 사용되었습니다. 대각선을 스캔했습니다. 명확한 설명을 위해 알고리즘과 구현을 살펴보겠습니다. 보기.

알고리즘

  • 행렬 M을 입력으로 읽습니다
  • n개의 행과 n개의 열이 있는 M을 생각해 보세요
  • sum_major := 0
  • sum_minor := 0
  • 0에서 n-1까지의 i 범위에 대해
  • 를 실행합니다.
    • j 범위가 0에서 n - 1인 경우
      • i와 j가 같다면
        • sum_major := sum_major + M[ i ][ j ]
      • 끝나면
      • 만약 (i + j)가 (N - 1)과 같다면,
        • sum_minor := sum_minor + M[ i ][ j ]
      • 끝나면
    • 종료
  • 종료
  • 환불금액

으아악

출력

으아악

결론

이 글에서는 주어진 정사각 행렬의 대각 합을 계산하는 방법을 살펴보았습니다. 주 대각선은 왼쪽 상단에서 오른쪽 하단으로 이어지는 반면, 보조 대각선은 왼쪽 하단에서 오른쪽 상단으로 이어집니다. 대각선은 오른쪽 상단에서 왼쪽 하단으로 시작됩니다. 이들의 합을 구하려면 대각선 요소의 경우 행 및 열 인덱스 값이 모두 있을 때 모든 요소를 ​​반복합니다. 동일합니다. 두 지수의 합이 다음과 같을 때 주대각선 요소를 나타냅니다. 행렬의 n-1차와 동일하게 하부대각선에 추가됩니다. 프로시저는 두 개의 중첩 루프를 사용하며 우리는 그 안에 존재하는 모든 요소를 ​​순회합니다. 2D 배열. 따라서 두 대각선의 합을 계산하려면 O(n2) 시간이 걸립니다. 주어진 행렬.

위 내용은 행렬의 대각선 합을 계산하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제