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