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

Pythonで等しい行の最大数を取得するために列の反転数を見つけるプログラム?


バイナリ行列があるとすると、指定された行列で任意の数の列を選択し、その列のすべてのセルを反転できます。セルの変換とは、セルの値を反転することを意味します。いくつかのフリップの後、すべての値が等しい行の最大数を見つける必要があります。したがって、マトリックスが次のような場合

0 0 0
0 0 1
1 1 0

出力は2になります。これは、最初の2列の値を変換した後、最後の2行の値が等しいためです。

これを解決するには、次の手順に従います。

  • x:=行列、m:=行数、n:=列数、r:=0

  • xの各要素iについて

    • c:=0

    • a:=iのすべての要素lのリスト、lXORiを挿入

    • xの各要素jについて

      • j=iまたはj=aの場合、cを1増やします

    • r:=cとrの最大値

  • rを返す

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

class Solution(object):
   def solve(self, matrix):
      x = matrix
      m = len(matrix)
      n = len(matrix[0] )
      r =0
      for i in x:
         c=0
         a=[l ^ 1 for l in i]
         for j in x:
            if j== i or j ==a:
               c+=1
         r=max(c, r)
      return r

ob = Solution()
matrix = [[0,0,0],
         [0,0,1],
         [1,1,0]]
print(ob.solve(matrix))

入力

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

出力

2

  1. バイナリ行列で重複する行を見つけるPythonプログラムを作成する

    バイナリ行列に0と1が含まれている場合、重複する行を見つけて印刷することがタスクです。 Pythonは、ここで使用されるCounter()メソッドを提供します。 例 Input: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Output: (1, 1, 1, 1) (0, 0, 0, 0) アルゴリズム Step 1: Create a binary matrix, only 0 and 1 elements are present. Step 2: Which will have rows as key and it’s frequency as value

  2. Pythonプログラムは最大3つ。

    3つの数abとcが与えられた場合、私たちのタスクは、与えられた数の中から最大の要素を見つけなければならないということです。 例 Input: a = 2, b = 4, c = 3 Output: 4 アルゴリズム Step 1: input three user input number. Step2: Add three numbers to list. Step 3: Using max() function to find the greatest number max(lst). Step 4: And finally we will print maximum numbe