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

Pythonで正方行列を反時計回りに90度回転するプログラム


正方行列があるとすると、反時計回りに90度回転する必要があります。

1 4 7
2 5 8
3 6 9

その場合、出力は次のようになります

7 8 9
4 5 6
1 2 3

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

  • 行列が空の場合、

    • 空白のリストを返す

  • n:=行列の行数

  • 行列の各行について、次のようにします

    • 行を逆にする

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

    • 0からi-1の範囲のjについては、次のようにします

      • matrix [i、j]とmatrix [j、i]

        を交換します
  • リターンマトリックス

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

class Solution:
   def solve(self, matrix):
      if not matrix or not matrix[0]:
         return []
      n = len(matrix)
      for row in matrix:
         row.reverse()
      for i in range(n):
         for j in range(i):
            matrix[i][j], matrix[j][i] = matrix[j][i],
            matrix[i][j]
      return matrix
ob = Solution()
matrix = [
[1, 4, 7],
[2, 5, 8],
[3, 6, 9]
]
print(ob.solve(matrix))

入力

[
[1, 4, 7],
[2, 5, 8],
[3, 6, 9] ]

出力

[
[7, 8, 9],
[4, 5, 6],
[1, 2, 3]]

  1. Pythonで頂点から頂点への到達可能性マトリックスを計算するプログラム

    隣接リスト表現としてグラフがあるとすると、2D行列Mを見つける必要があります。ここで 頂点iとjの間にパスがある場合、M [i、j]=1です。 それ以外の場合はM[i、j]=0です。 したがって、入力が次のような場合 その場合、出力は次のようになります 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 これを解決するには、次の手順に従います- ans:=サイズn x nの2次元行列。こ

  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