>  기사  >  백엔드 개발  >  주어진 행렬의 트레이스와 법선을 찾는 C++ 프로그램

주어진 행렬의 트레이스와 법선을 찾는 C++ 프로그램

WBOY
WBOY앞으로
2023-08-30 10:37:051157검색

주어진 행렬의 트레이스와 법선을 찾는 C++ 프로그램

일부 응용 프로그램에서는 2차원 배열이나 행렬을 사용하면 큰 이점을 얻을 수 있습니다. 숫자는 행렬의 행과 열에 저장됩니다. 다차원 배열을 사용하여 우리는 2D 행렬은 C++에서도 정의할 수 있습니다. 이번 포스팅에서는 C++ 사용법을 배워보겠습니다. 주어진 행렬의 법선과 자취를 결정합니다.

행렬의 전체 요소 수의 제곱근을 ​​라고 합니다. 정상. 추적은 주 대각선을 구성하는 모든 구성 요소로 구성됩니다. 우리를 보자 C++ 코드에서 알고리즘 표현을 봅니다.

매트릭스 트레이스

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

주 대각선에 있는 모든 요소의 합: (8 + 7 + 9) = 24, 이는 주어진 행렬의 자취입니다

이전 예에서는 3 x 3 행렬이 사용되었으며 결과는 행렬의 합입니다. 주대각선의 요소 수입니다. 행렬의 흔적은 합에서 찾을 수 있습니다. 우리를 보자 알고리즘을 보면 이해하는데 도움이 됩니다.

알고리즘

  • 행렬 M을 입력으로 읽습니다
  • M이 n개의 행과 n개의 열을 가지고 있다고 가정해보세요
  • 합계: = 0
  • 1부터 n까지의 경우 다음을 수행하세요.
    • sum := sum + M[ i ][ i ]​​i>
  • 합계를 돌려주세요

으아아아

출력

으아아아

매트릭스 노멀

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

모든 요소의 합: (8 + 5 + 3 + 6 + 7 + 1 + 2 + 4 + 9) = 45

정규: (모든 원소의 합의 제곱근) = √45 = 6.708

이전 예에서는 3 x 3 행렬이 사용되었습니다. 먼저 모든 항목의 합계를 계산합니다. 제곱근을 찾기 전에. 이해를 돕기 위해 알고리즘을 살펴보겠습니다.

알고리즘

  • 행렬 M을 입력으로 읽습니다
  • M이 n개의 행과 n개의 열을 가지고 있다고 가정해보세요
  • 합계는 0으로 초기화됩니다
  • 1부터 n까지의 경우 다음을 수행하세요.
    • 1부터 n까지의 j에 대해 다음을 수행하세요.
      • sum := sum + M[ i ][ j ]​​i>
  • res := 합의 제곱근
  • 결과 반환

으아아아

출력

으아아아

결론

정규 연산과 추적 연산은 행렬에 속합니다. 이 두 가지 프로세스에는 정사각형 행렬, 이것이 우리에게 필요한 것입니다(왜냐하면 추적 정사각형이 필요하기 때문입니다). 흔적의 합은 법선은 행렬의 주대각선에 포함된 요소입니다. 행렬에 포함된 총 요소 수의 제곱근입니다. C++에서 행렬은 다음을 수행할 수 있습니다. 2차원 배열을 사용하여 표시합니다. 여기서는 5개의 행과 5개의 열로 구성된 두 개의 행렬을 선택했습니다. 예(총 25개 요소) 루프 문을 통해 행렬에 액세스해야 합니다. 그리고 인덱스 조작. 일반적인 작업을 수행하려면 두 개의 중첩 루프가 필요합니다. 계산할 때 각 요소를 반복해야 합니다. 이 프로그램의 복잡도는 O(n2)입니다. 추적에는 주 대각선만 필요하므로 행 및 열 인덱스는 다음과 같습니다. 동일한. 따라서 for 루프만 필요합니다. O(n) 시간으로 결정됩니다.

위 내용은 주어진 행렬의 트레이스와 법선을 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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