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

Pythonの行列でi番目の行とi番目の列の合計が同じであるかどうかを確認します


2D行列があるとします。 i番目の行の合計がi番目の列の合計と同じであるかどうかを確認する必要があります。

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

2
3
4
5
10
6
4
2
1
4
6
7
1
5
6
7

その場合、最初の行と列の合計は(2 + 3 + 4 + 5)=14および(2 + 10 + 1 + 1)=14であるため、出力はTrueになります。

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

  • 行:=マットの行数
  • col:=マットの列数
  • total_row:=0、total_col:=0
  • 0から行-1の範囲のiの場合、実行
    • total_row:=0、total_col:=0
    • 0からcol-1の範囲のjの場合、do
      • total_row:=total_row + mat [i、j]
      • total_col:=total_col + mat [j、i]
    • total_rowがtotal_colと同じ場合、
      • Trueを返す
  • Falseを返す

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

サンプルコード

def solve(mat):
   row = len(mat)
   col = len(mat[0])
   total_row = 0
   total_col = 0
   for i in range(row):
      total_row = 0
      total_col = 0
      for j in range(col):
         total_row += mat[i][j]
         total_col += mat[j][i]
       
      if total_row == total_col:
         return True
     
   return False
 
matrix = [
   [2,3,4,5],
   [10,6,4,2],
   [1,4,6,7],
    [1,5,6,7]
]
     
print(solve(matrix))

入力

[    
[1,2,3,4],     

[9,5,3,1],     

[0,3,5,6],    

[0,4,5,6]

]

出力

True

  1. 2つのツリーをチェックするプログラムは、Pythonでの構造と値に基づいてまったく同じです。

    2分木があるとすると、構造と値がまったく同じかどうかを確認する必要があります。双子の木と言えます。 したがって、入力が次のような場合 その場合、出力は最初のペアでTrue、2番目のペアと3番目のペアでFalseになります。これは、2番目と3番目の項目が異なり、構造がそれぞれ異なるためです。 これを解決するには、次の手順に従います- メソッドsolve()を定義します。これには2つのルートが必要です root0がnullで、root1がnullの場合、 Trueを返す root0がnullまたはroot1がnullの場合、 Falseを返す

  2. 与えられた2つの行列が同一であるかどうかをチェックするPythonプログラム

    ここでは2つの行列が与えられています。両方の行列の順序は同じです。同じように2つの行列が等しくなければならず、両方の行列の行と列の数が等しく、対応する要素も等しくなければなりません。 アルゴリズム Step 1: Create two matrix. Step 2: Then traverse every element of the first matrix and second matrix and compare every element of the first matrix with the second matrix. Step 3: If the both are same