ホームページ >ウェブフロントエンド >jsチュートリアル >マルコフ行列用の JavaScript プログラム

マルコフ行列用の JavaScript プログラム

WBOY
WBOY転載
2023-08-26 19:17:07653ブラウズ

马尔可夫矩阵的 JavaScript 程序

行列は、特定の数の行を持ち、各行に同じ数の列がある 2 次元配列です。特定のインデックスの要素は、行と列の数。マルコフ行列の場合、各行の合計は 1 に等しくなければなりません。新しいマルコフ行列を作成し、現在指定されている行列がマルコフ行列であるかどうかを調べるコードを実装します。

問題の紹介

与えられた問題では、マルコフ行列は行の合計が等しくなければならない行列であることがわかっているため、バイナリ データを使用してマルコフ行列を生成するコードを記述する必要があります。つまり、0 と 1 のみを使用します。 1 にすると (これは 2 進数のみで構成されているという意味ではありません)、各行に 1 があり、他の要素は 0 であることを意味します。

これから実装するプログラムは、マルコフ行列の特殊なケースにすぎません。

2 番目のコードでは、行列を取得し、現在の行列がマルコフ行列かどうかを確認する必要があります。これら 2 つのコードを見てみましょう -

マルコフ行列の作成

現在のセクションでは、2 進数 0 と 1 を使用してマルコフ行列を作成します。まずメソッドを見てから、コードの実装に進みます -

###方法###

このコードでは、new キーワードと配列を使用して行列を作成します。配列のインデックスごとに、配列を再度作成してそれを埋めます。

行列の各行について、random 関数を使用して、列数の範囲内で乱数を取得し、現在の行のその列を 1 で埋め、他の列を 0 で埋めます。

最後に行列を返します。

###例### リーリー

時間と空間の複雑さ

上記のコードでは、完全な行列を移動しており、移動または走査のたびに乱数を取得するため、一定の時間がかかります。したがって、上記のコードの時間計算量は O(N*M) です。ここで、N は行数、M は列数です。

空間の複雑さは行列のサイズとまったく同じであり、余分な空間は使用しません。したがって、上記のコードの空間複雑さは O(N*M) です。

現在の行列がマルコフ行列であるかどうかを確認します

現在のセクションでは、行列が与えられ、現在の行列がマルコフ行列であるかどうかを調べる必要があります。まずメソッドを見てから、コードの実装に進みます -

###方法###

このコードでは、単純に行列を反復処理し、各行のカウントを取得します。現在の行のカウントが 1 の場合、次の行に移動します。それ以外の場合は、マルコフ行列ではない現在の行列を返します。

###例### リーリー

時間と空間の複雑さ

上記のコードでは、行列を走査して各列の合計を保存するため、上記のコードの時間計算量は O(N*M) になります。

上記のコードでは余分なスペースを使用していないため、スペースの複雑さは O(1) になっています。

###結論は###

このチュートリアルでは、マルコフ行列用の JavaScript プログラムを実装しました。マルコフ行列の場合、各行の合計は 1 に等しくなければなりません。乱数生成関数を使用して、O(N*M) 時間計算量および同じ空間でバイナリ マルコフ行列を生成するコードを実装しました。さらに、現在の行列がマルコフ行列であるかどうかを O(N*M) 時間でチェックするコードを実装しました。

以上がマルコフ行列用の JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。