行列が対称かどうかをチェックするJavaScriptプログラム

WBOY
リリース: 2023-08-27 15:37:08
転載
575 人が閲覧しました

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

対称行列は、行列と行列の転置の両方が同じである行列の特殊なケースです。行列とは、二次元配列に相当する、長方形の形で格納された整数または数値の集合であり、行列の転置も、すべての行を列に置き換えることによって得られる行列です。行列を取得し、それが対称行列であるかどうかを出力する必要があります。

###入力### リーリー ###出力### リーリー

イラスト

ご存知のとおり、転置行列は列を行に、行を列に置き換えた行列です。したがって、ここでの最初の行は最初の列と同じであり、2 番目の行は同じです。 . 列と同じで、3 行目は列と同じです。

###入力### リーリー ###出力### リーリー

イラスト

指定された行列では、転置行列は -

になります。 リーリー

2 行目と 3 行目、または 2 列目と 3 列目が異なっていることがわかります。

Note

- ご覧のとおり、特定の行列の転置は行と列を交換することで形成できます。つまり、行列の次元が 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) の 2 つのメソッドを実装しました。

以上が行列が対称かどうかをチェックするJavaScriptプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート