ホームページ > ウェブフロントエンド > jsチュートリアル > 行列を右に K 回回転する JavaScript プログラム

行列を右に K 回回転する JavaScript プログラム

王林
リリース: 2023-08-24 22:09:06
転載
1503 人が閲覧しました

将矩阵向右旋转 K 次的 JavaScript 程序

「行列の右回転」という用語は、行列の各列を右に移動することを意味します。指定すると、この操作が「k」回繰り返されます。言い換えれば、これは「k」回発生する行列の右シフトです。このプログラムはさまざまなプログラミング言語を使用して実装できますが、シンプルかつ効果的な方法は、JavaScript を使用して行列を k 回右回転することを検討することです。

行列を K 回右回転するにはどうすればよいですか?

行列を k 回右回転するのは簡単です。これには、行列の各列を右に k 回移動する必要があります。これを実証するために、行列に対して手動で右回転を k 回実行する例を実行します。

###例###

サイズ N*M と数値 K の行列を考えてみましょう。行列を右に k 回回転する必要があります。

Input matrix: N = 4, M = 4, K = 3
1 2 3 4 
6 7 8 9 
0 9 8 7 
5 4 3 2 
Output matrix:
4 1 2 3
9 6 7 8
7 0 9 8
2 5 4 3
ログイン後にコピー

メソッド

k 回の正しい回転を実行するプロセスは理解するのは簡単に思えるかもしれませんが、実装するのは少し難しいかもしれません。この方法では、行 i の各列の要素を最大 m-k までの一時配列にコピーします。次に、k から行 i の最後までの要素を先頭に移動します。最後に、一時配列の要素を行列の各 i 行の末尾にコピーして戻します。

使用するメソッドのアルゴリズムを見てみましょう。

右回転行列 K 回のアルゴリズム

ステップ 1

- 行列の行数と列数を決定します。

ステップ 2

- k の値に基づいて、各行を移動する必要がある回数を計算します。これはモジュロ演算子 (%) を使用して実行できます。

ステップ 3

- 行列の各行に対して、移動する必要がある要素を含む新しい配列を作成します。

ステップ 4

- splice() メソッドを使用して、シフトされた要素を元の行から削除し、新しい行の先頭に追加します。

ステップ 5

- 元の行を新しい行に設定します。

ステップ 6

- マトリックスの各行に対してステップ 3 ~ 5 を繰り返します。 ###例### このプログラムでは、displayMatrix() とrotateMatrixRight() という 2 つの静的メソッドを持つ MatrixRotation クラスを定義します。

displayMatrix() メソッドは行列を入力として受け取り、それをコンソールに表示します。 for ループを使用して行列の各行を反復処理し、それをコンソールに記録します。

rotateMatrixRight() メソッドは、行列と数値 k を入力として受け取り、右に k 位置回転された新しい行列を返します。前の回答と同じアルゴリズムを使用して回転を実行します。

サンプル使用コードでは、入力行列と k 値を定義し、rotateMatrixRight() メソッドを呼び出して回転を実行します。 displayMatrix() メソッドを使用して入力行列と出力行列を表示します。

リーリー ###結論は###

JavaScript でいくつかの簡単な手順を使用して、行列を k 回右回転します。最初のステップは、行列の行数と列数を決定することです。次のステップでは、k の値に基づいて各行を右にシフトする必要がある回数を計算します。シフト数が決定されると、プログラムは行列の各行を反復処理し、元の行からシフトされた要素を含む新しい配列を作成し、シフトされた要素で元の行を更新します。これらの手順に従うことで、JavaScript で行列を右に k 回回転できます。

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

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