>웹 프론트엔드 >JS 튜토리얼 >행렬이 대칭인지 확인하는 JavaScript 프로그램

행렬이 대칭인지 확인하는 JavaScript 프로그램

WBOY
WBOY앞으로
2023-08-27 15:37:08622검색

检查矩阵是否对称的 JavaScript 程序

대칭 행렬은 행렬과 행렬의 전치가 모두 동일한 행렬의 특별한 경우입니다. 행렬은 정수 또는 숫자의 집합을 직사각형 형태로 저장한 것으로, 2차원 배열과 동일합니다. 행렬의 전치 역시 모든 행을 열로 대체하여 얻은 행렬입니다. 우리는 행렬을 얻고 그것이 대칭행렬인지 아닌지를 인쇄해야 합니다.

들어가세요

으아아아

출력

으아아아

지침

우리 모두 알고 있듯이 전치 행렬은 열을 행으로, 행을 열로 바꾸는 행렬이므로 여기서 첫 번째 행은 첫 번째 열과 같고 두 번째 행은 열과 같고 세 번째 행은 같습니다. 행은 열과 동일합니다.

들어가세요

으아아아

출력

으아아아

지침

주어진 행렬에서 전치된 행렬은 -

으아아아

두 번째 행과 세 번째 행 또는 두 번째 열과 세 번째 열이 다른 것을 확인할 수 있습니다.

참고 - 보시다시피, 주어진 행렬의 전치(transpose)는 행과 열을 교환하여 형성될 수 있습니다. 즉, 행렬의 차원이 N*M이면 전치된 행렬의 차원은 M*N이 됩니다. 이는 행렬이 대칭이 되려면 N이 M과 같아야 하여 정사각형 행렬이 된다는 것을 의미합니다.

순진한 방법

이 방법에서는 먼저 새 행렬을 만들고 요소를 행과 열에 저장하여 전치된 행렬을 얻습니다. 그런 다음 두 행렬을 반복하여 비교해 보겠습니다. 어떤 인덱스에서도 일치하지 않으면 false를 반환하고, 그렇지 않으면 true를 반환합니다.

으아아아

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*N)입니다. 여기서 N은 주어진 행렬의 크기입니다.

위 코드의 공간 복잡도는 O(N*N)입니다. 왜냐하면 전치된 행렬 요소를 저장하기 위해 추가 공간을 사용하기 때문입니다.

효율적인 방법

전치된 행렬은 행과 열을 교환하여 얻을 수 있습니다. 즉, 각 열은 해당 행과 같습니다. 따라서 임의의 인덱스 (i,j)에 있는 값은 주어진 행렬에서 (j,i)에 있는 값과 같습니다.

으아아아

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*N)입니다. 여기서 N은 주어진 행렬의 크기입니다.

위 코드의 공간 복잡도는 추가 공간을 사용하지 않기 때문에 O(1)입니다.

결론

위 튜토리얼에서는 주어진 행렬이 대칭 행렬인지 확인하는 JavaScript 코드를 구현했습니다. 대칭행렬은 행렬의 전치와 행렬이 모두 동일한 행렬의 특수한 경우로, 행과 열을 교환하여 행렬의 전치를 구할 수 있다. 행렬이 대칭이 되려면 정사각형이어야 합니다. 우리는 시간 복잡도 O(N*N), 공간 복잡도 O(N*N), 공간 복잡도 O(1)의 두 가지 방법을 구현했습니다.

위 내용은 행렬이 대칭인지 확인하는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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