输入整数n,生成元素为2位数之内的n×n的初始矩阵并输出,对初始矩阵分别沿主对角线和次对角线翻转后输出
import random
n=int(input())
a=[]
for i in range(n):
l=[]
for j in range(n):
l.append(random.randint(0,99))
a.append(l)
for i in range(n):
for j in range(n):
print(a[i][j],end=' ')
print()
print('主对角线反转:')
for i in range(n):
for j in range(n):
print(a[j][i],end=' ')
print()
print('次对角线反转:')
for i in range(n):
for j in range(n):
print(a[n-j-1][n-i-1],end=' ')
print()
import numpy as np
n = int(input())
# 生成元素为2位数之内的n×n的初始矩阵并输出
a = np.random.randint(10,99,(n,n))
print(a)
# 初始矩阵分别沿主对角线
def fanzhuan_zhu(wind_array, nx):
for i in range(nx):
for j in range(i, nx - i):
tmp = wind_array[i, j]
wind_array[i, j] = wind_array[j, i]
wind_array[j, i] = tmp
j = j + 1
i = i + 1
return wind_array
print(fanzhuan_zhu(a, n))
# 初始矩阵分别沿次对角线翻转
def fanzhuan_fu(wind_array, nx):
for i in range(nx - 1):
for j in range(nx - 1 - i):
tmp = wind_array[i, j]
wind_array[i, j] = wind_array[nx - j - 1, nx - i - 1]
wind_array[nx - j - 1, nx - i - 1] = tmp
j = j + 1
i = i + 1
return wind_array
print(fanzhuan_fu(a, n))
import numpy as np
import pandas as pd
n = int(input())
data = np.array(np.random.randint(0,100,size=(n,n))) # 不包含100
print(data)
# 沿对角线翻转
print(data.T)
# 沿副对角线翻转
for i in range(n - 1):
for j in range(n - 1 - i):
tmp = data[i, j]
data[i, j] = data[n - j - 1, n - i - 1]
data[n - j - 1, n - i - 1] = tmp
print(data)
运行结果:
如果对你有帮助,帮忙采纳一下!