(Python)矩陣轉化

2021-08-08 07:12:09 字數 1464 閱讀 1972



曉萌最近在做乙個翻轉的應用,你可能也知道,其實是由乙個個的點組成的。於是,曉萌想先做乙個可以翻轉矩陣的程式,來解決他問題的核心部分。

輸入第一行包括由空格分開的整數 m,n,t(0 < n,m < 200)m,

n,t(

0m<20

0),tt

的值為 0

0 或 1

1。其中 m

m 和 n

n 分別表示待處理矩陣的行數與列數,t

t 為 0

0 時表示左右翻轉,為 1

1 時表示上下翻轉。

之後的 m

m 行,每行包括由空格分隔的 n

n 個整數,依次為輸入矩陣的每一行的資料。

輸出包括 m

m 行 n

n 列,每個數字之間用乙個空格分隔,每一行行末均有乙個空格,表示的是按照要求翻轉後的矩陣。

樣例輸入

4 4 1

1 2 3 4

5 6 7 8

9 0 1 2

3 4 5 6

樣例輸出

3 4 5 6 

9 0 1 2

5 6 7 8

1 2 3 4

a=[[0 

for i in

range(205)]for i in

range(205)]

b=[[0

for i in

range(205)]for i in

range(205)]

def revers1(m,n):

for i in

range(m):

for j in

range(n):

b[m-i-1][j]=a[i][j]

def revers2(m,n):

for i in

range(m):

for j in

range(n):

b[i][n-j-1]=a[i][j]

x=input().split()

m=int(x[0])

n=int(x[1])

t=int(x[2])

#print(m,n,t)

for i in

range(m):

x=input().split()

for j in

range(n):

a[i][j]=int(x[j])

# print(arr[i][j],str=' ')

if t==1:

revers1(m,n)

else:

revers2(m,n)

for i in

range(m):

for j in

range(n):

print(b[i][j],end=" ")

print()

稀疏矩陣的快速轉化

若有下面這樣乙個矩陣001 3056 700 如果按照上篇所用的資料結構儲存如下 a rowcolvalue s 0 02 1s 1 03 3s 2 10 5s 3 11 6s 4 12 7 轉換後的 b rowcolvalue s 0 01 5s 1 11 6s 2 20 1s 3 21 7s 4...

點的變換(矩陣轉化)

link 時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述 平面上有不超過10000個點,座標都是已知的,現在可能對所有的點做以下幾種操作 平移一定距離 m 相對x軸上下翻轉 x 相對y軸左右翻轉 y 座標縮小或放大一定的倍數 s 所有點對座標原點逆時針旋轉一定角度 r 操作的...

python字元轉化

int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件x轉換為字串 repr x 將物件x轉換為表示式字串 eval str 用來計算在字串中的有效python...