マトリックスを水平方向に反転し、JavaScriptを使用して反転します
問題
最初で唯一の引数として、2次元のバイナリ配列arr(0または1のみで構成される配列)を受け取るJavaScript関数を作成する必要があります。
この関数は、最初に行列を水平方向に反転し、次にそれを反転して、結果の行列を返す必要があります。
行列を水平方向に反転するということは、行列の各行が逆になることを意味します。たとえば、[1、1、0]を水平方向に反転すると、[0、1、1]になります。
行列を反転するとは、各0が1に置き換えられ、各1が0に置き換えられることを意味します。たとえば、[0、1、1]を反転すると、[1、0、0]になります。
たとえば、関数への入力が
入力
const arr = [ [1, 1, 0], [1, 0, 1], [0, 0, 0] ];
出力
const output = [ [1,0,0], [0,1,0], [1,1,1] ];
出力の説明
まず、各行を逆にします-
[[0,1,1],[1,0,1],[0,0,0]]
次に、行列を反転します-
[[1,0,0],[0,1,0],[1,1,1]]
例
以下はコードです-
const arr = [ [1, 1, 0], [1, 0, 1], [0, 0, 0] ]; const flipAndInvert = (arr = []) => { const invert = n => (n === 1 ? 0 : 1) for(let i = 0; i < arr.length; i++) { for(let j = 0; j < arr[i].length / 2; j++) { const index2 = arr[i].length - 1 - j if(j === index2) { arr[i][j] = invert(arr[i][j]) } else { const temp = arr[i][j] arr[i][j] = arr[i][index2] arr[i][index2] = temp arr[i][j] = invert(arr[i][j]) arr[i][index2] = invert(arr[i][index2]) } } } }; flipAndInvert(arr); console.log(arr);
出力
[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 1, 1 ] ]
-
「new」演算子を使用してJavaScriptコンストラクターを作成しますか?
以下は、「new」演算子を使用してJavaScriptコンストラクターを作成するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <
-
Pythonで行列を反転および反転
バイナリ行列マットがあるとします。行列の各行を選択してから、行を逆にする必要があります。その後、各ビットを反転します(0から1および1から0)。 したがって、入力が次のような場合 1 1 0 0 1 0 0 0 1 その場合、出力は次のようになります 1 0 0 1 0 1 0 1 1 これを解決するには、次の手順に従います- track:=0 マットの各列について、 行を逆にする トラッカー:=0 行の各valについて、 valが1の場合、 mat [track、