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

行列内の要素の数を見つけるプログラムは、Pythonの行列の基準に従います


バイナリ行列があるとします。次のルールに従う行列内の要素の数を見つける必要があります-

  • matrix [r、c] =1

  • jがcと等しくない場合はすべてのjに対してmatrix[r、j] =0であり、iがrと等しくない場合はすべてのiに対してmatrix [i、c]=0です。

したがって、入力が次のような場合

0 0 1
1 0 0
0 1 0

基準を満たすセル(0,2)、(1,0)、(2,1)があるため、出力は3になります。

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

  • 行列が空の場合、

    • 0を返す

  • row:=マトリックス内のすべての行エントリの合計のリスト

  • col:=マトリックス内のすべての列エントリの合計のリスト

  • m:=行列の行数

  • n:=行列の列数

  • res:=0

  • 0からm-1の範囲のrの場合、実行

    • 0からn-1の範囲のcの場合、実行

      • matrix [r、c]が1で、row [r]が1で、col [c]も1の場合、

        • res:=res + 1

  • 解像度を返す

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

def solve(matrix):
   if not matrix:
      return 0

   row = [sum(r) for r in matrix]
   col = [sum(c) for c in zip(*matrix)]

   m, n = len(matrix), len(matrix[0])
   res = 0
   for r in range(m):
      for c in range(n):
         if matrix[r][c] == 1 and row[r] == 1 and col[c] == 1:
            res += 1
   return res

matrix = [
   [0, 0, 1],
   [1, 0, 0],
   [0, 1, 0]
]
print(solve(matrix))

入力

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

出力

3

  1. Pythonプログラムで行列の転置を見つける

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −行列が与えられたので、行列の転置を表示する必要があります。 行列の転置は、A[i][j]に存在する値をA[j][i]に置き換えることによって得られます。 それでは、以下の実装の概念を見てみましょう- アプローチ1:入力行列の転置を格納するための新しい行列を作成する 例 def transpose(A,B):    for i in range(M):       for j in range(N):        

  2. 行列の転置を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 行列が与えられた場合、転置を同じ行列に格納して表示する必要があります。 行列の転置は、行を列に、列を行に変更することで得られます。つまり、A行列の転置はA[i][j]をA[j][i]に変更することで得られます。 以下に示す実装を見てみましょう- 例 N = 4 def transpose(A):    for i in range(N):       for j in range(i+1, N):     &nbs