Python
 Computer >> コンピューター >  >> プログラミング >> Python

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、tracker]:=0
      • それ以外の場合、
        • mat [track、tracker]:=1
      • トラッカー:=トラッカー+ 1
    • track:=track + 1
  • リターンマット

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, mat):
      track=0
      for row in mat:
         row.reverse()
         tracker = 0
         for val in row:
            if val == 1:
               mat[track][tracker] = 0
            else:
               mat[track][tracker] = 1
            tracker += 1
         track += 1
      return mat
ob = Solution()
mat = [[1,1,0],[0,1,0],[0,0,1]]
print(ob.solve(mat))

入力

[[1,1,0],[0,1,0],[0,0,1]]

出力

[[1, 0, 0], [1, 0, 1], [0, 1, 1]]

  1. Pythonでの順列と組み合わせ?

    このセクションでは、Pythonプログラミング言語を使用して特定のシーケンスの順列と組み合わせを見つける方法を学習します。 他のプログラミング言語に対するPythonの主な利点の1つは、Pythonに膨大なライブラリセットが付属していることです。 python組み込みパッケージを使用して、特定のシーケンスの順列と組み合わせを検索します。 順列と組み合わせを見つけるためのアルゴリズム ステップ1 :必要なパッケージをインポートします。最初のステップは、itertoolsパッケージを使用するため、必要なパッケージをインポートすることです。そのため、を使用してインポートします。 &g

  2. =+と+=はPythonで何をしますか?

    + =演算子は、object .__ iadd __()関数のシンタックスシュガーです。 Pythonドキュメントから: これらのメソッドは、拡張された算術割り当て(+ =、-=、* =、@ =、/ =、// =、%=、** =、)を実装するために呼び出されます。 =、&=、^ =、| =)。これらのメソッドは、その場で操作を実行し(自己を変更)、結果を返すようにする必要があります(自己である可能性がありますが、そうである必要はありません)。 例 だからあなたが次のようなことをするとき- a = 5 b = 10 a += b print(a) 出力 これにより、出力が得られます- 15