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

Pythonで行列の対角和を見つけるプログラム


正方行列があるとします。行列の対角線の合計を見つける必要があります。したがって、一次対角線上のすべての要素と二次対角線上のすべての要素の合計のみを含め、交差する要素は無視してください。

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

10 5 9 6
8 15 3 2
3 8 12 3
2 11 7 3

その場合、出力は次のようになります。一次対角要素は[10,15,12,3]合計が40、二次対角要素[6,3,8,2]合計が19なので、合計は59です。

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

  • m:=行列の行数

  • mが1と同じ場合、

    • 行列を返す[0、0]

  • カウント:=0

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

    • count:=count + matrix [i、i]

    • count:=count + matrix [i、(-1-i)]

  • mが奇数の場合、

    • ind:=m/2の商

    • count:=count --matrix [ind、ind]

  • 返品数

例(Python)

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

def solve(matrix):
   m = len(matrix)
   if m == 1: return matrix[0][0]

   count = 0
   for i in range(m):
      count += matrix[i][i]
      count += matrix[i][-1 - i]

   if m % 2 == 1: count -= matrix[m // 2][m // 2]

   return count

matrix = [[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3],]
print(solve(matrix))

入力

[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]

出力

59

  1. 行列の転置を見つける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

  2. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '