마르코프 행렬용 JavaScript 프로그램

WBOY
풀어 주다: 2023-08-26 19:17:07
앞으로
641명이 탐색했습니다.

马尔可夫矩阵的 JavaScript 程序

행렬은 일정한 개수의 행을 갖고 각 행의 열 개수가 동일한 2차원 배열입니다. 어떤 특정 인덱스에 있는 요소는 행과 열의 개수로 얻을 수 있습니다. 마르코프 행렬의 경우 각 행의 합은 1과 같아야 합니다. 새로운 마르코프 행렬을 생성하고, 현재 주어진 행렬이 마르코프 행렬인지 알아내는 코드를 구현해 보겠습니다.

문제 소개

주어진 질문에서 우리는 이진 데이터를 사용하여 마르코프 행렬을 생성하는 코드를 작성해야 합니다. 즉, 마르코프 행렬은 행의 합이 1과 같아야 하는 행렬이라는 것을 알고 있으므로 0과 1만 사용합니다. (이것은 이진수로만 구성된다는 의미는 아닙니다.) 각 행에 1이 있고 다른 요소는 0이라는 의미입니다.

우리가 구현할 프로그램은 마르코프 행렬의 특별한 경우입니다.

두 번째 코드에서는 행렬을 얻고 현재 행렬이 마르코프 행렬인지 찾아야 합니다. 이 두 코드를 살펴보겠습니다 -

마르코프 행렬 만들기

현재 섹션에서는 이진수 0과 1을 사용하여 마르코프 행렬을 만듭니다. 먼저 메소드를 살펴보고 코드 구현으로 넘어가겠습니다 -

방법

이 코드에서는 새로운 키워드와 배열을 사용하여 행렬을 만듭니다. 배열의 각 인덱스에 대해 배열을 다시 생성하여 채웁니다.

행렬의 각 행에 대해 무작위 함수를 사용하여 열 수 범위 내에서 임의의 숫자를 얻고 현재 행의 해당 열을 1로 채우고 나머지 열은 0으로 채웁니다.

마지막으로 행렬을 반환하겠습니다.

으아아아

시간과 공간의 복잡성

위 코드에서 우리는 전체 행렬을 이동했으며 모든 이동이나 순회에 대해 일정한 시간이 걸릴 때마다 임의의 숫자를 얻습니다. 따라서 위 코드의 시간 복잡도는 O(N*M)입니다. 여기서 N은 행 수이고 M은 열 수입니다.

공간 복잡도는 행렬의 크기와 정확히 동일하며 추가 공간을 사용하지 않습니다. 따라서 위 코드의 공간복잡도는 O(N*M)이다.

현재 행렬이 마르코비안인지 확인하세요

현재 부분에서는 행렬이 주어지고 현재 행렬이 마르코프 행렬인지 찾아야 합니다. 먼저 메소드를 살펴보고 코드 구현으로 넘어가겠습니다 -

방법

이 코드에서는 단순히 행렬을 반복하고 각 행의 개수를 가져옵니다. 현재 행의 개수가 1이면 다음 행으로 이동하고, 그렇지 않으면 마르코프 행렬이 아닌 현재 행렬을 반환합니다.

으아아아

시간과 공간의 복잡성

위 코드에서는 행렬을 반복하고 각 열의 합을 저장하여 위 코드의 시간 복잡도를 O(N*M)로 만듭니다.

위 코드에서는 추가 공간을 사용하지 않으므로 공간 복잡도가 O(1)이 됩니다.

결론

이 튜토리얼에서는 Markov 행렬용 JavaScript 프로그램을 구현했습니다. 마르코프 행렬의 경우 각 행의 합은 1과 같아야 합니다. 난수 생성 함수를 사용하여 O(N*M) 시간 복잡도와 동일한 공간에서 이진 마르코프 행렬을 생성하는 코드를 구현했습니다. 추가적으로 현재 행렬이 마르코프 행렬인지를 O(N*M) 시간에 확인하는 코드를 구현했습니다.

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

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿