ホームページ > ウェブフロントエンド > jsチュートリアル > バイナリ行列の水平および垂直の対称性をチェックする JavaScript プログラム

バイナリ行列の水平および垂直の対称性をチェックする JavaScript プログラム

王林
リリース: 2023-09-02 17:05:08
転載
1235 人が閲覧しました

JavaScript 程序检查二进制矩阵中的水平和垂直对称性

バイナリ行列は、各セルに 1 と 0 の要素のみを含む 2 次元配列です。バイナリ行列の水平対称性は、最初の行が最後の行と同じである場合、2 番目の行は最後から 2 番目の行と同じであることを意味します。同様に、垂直対称とは、最初の列と最後の列、最後から 2 番目の列と最後から 2 番目の列などが同じかどうかを意味します。この問題では、行列が与えられ、その中に水平および垂直の対称性があるかどうかを検出します。

入力

1 0 1
0 0 0 
1 0 1 
ログイン後にコピー
###出力### リーリー

説明

- 最初の行と最後の行は同じです。これは、水平方向の対称性があることを意味します。同様に、最初の列と最後の列は同一であるため、垂直方向に対称になります。 入力

Both, horizontal and vertical symmetry is present. 
ログイン後にコピー
###出力### リーリー

説明

- 最初の行は最後の行と等しくなく、最初の列は最後の列と等しくありません。

###方法###

与えられた問題を理解するために例を見てきました。次に、コードを実装する手順を見てみましょう -

まず、与えられた行列の水平対称性をチェックする関数を定義します。この関数は、指定された行列の単一の引数を受け取り、現在の行列が水平対称かどうかを返します。

    行列を反復処理し、行ごとに、行列の中央を通り現在の行から同じ距離にある仮想線の反対側の行と比較します。
  • 与えられた行列の垂直方向の対称性をチェックする関数を定義します。この関数は 1 つの引数、つまり指定された行列を受け取ります。
  • p>

  • 行列を繰り返し処理し、各列について、行列の中央を通り現在の列から同じ距離にある仮想線の反対側の列と比較します。
  • これら 2 つの関数を呼び出し、戻り値に基づいて結果を出力します。
  • p> ###例### リーリー ###出力### リーリー

  • 時間と空間の複雑さ
  • 上記のコードの時間計算量は O(N*M) です。ここで、N は指定された行列の行数、M は指定された行列の列数です。マトリックス全体を 2 回スキャンします。1 回目は水平対称性、もう 1 回目は垂直対称性です。

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

このチュートリアルでは、行列が与えられたときに、現在の行列が水平対称か垂直対称かを調べる JavaScript プログラムを実装しました。バイナリ行列の水平対称性は、最初の行が最後の行と同一である場合、2 番目の行は最後から 2 番目の行と同一であることを意味します。同様に、垂直対称とは、最初の列と最後の列、最後から 2 番目の列と最後から 2 番目の列などが同じかどうかを意味します。時間計算量 O(N*M) と空間計算量 O(1) のプログラムを実装しました。

以上がバイナリ行列の水平および垂直の対称性をチェックする JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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