第1关 打印零矩阵
m = int(input()) #行数
n = int(input()) #列数
########## Begin ##########
L=[[0]*n for _ in range(0,m)]
# print(L)
for i in range(0,m):
for j in range(0,n):
print("%d\t" % L[i][j],end="")
print("")
########## End ##########
第2关 计算负矩阵
import myMatrix #myMatrix是自己定义的一个库
num = int(input())
A = myMatrix.getMatrix(num) #利用myMatrix库生成矩阵A
print('A=')
myMatrix.printMatrix(A) #利用myMatrix库打印矩阵A
########## Begin ##########
r=len(A)
c=len(A[0])
B = myMatrix.getMatrix(num)
for i in range(0,r):
for j in range(0,c):
B[i][j]=-A[i][j]
########## End ##########
print('\nB=-A=')
myMatrix.printMatrix(B) #利用myMatrix库打印矩阵B
第3关 矩阵相加
import myMatrix
num1 = int(input())
num2 = int(input())
A = myMatrix.getMatrix(num1)
print('A=')
myMatrix.printMatrix(A)
B = myMatrix.getMatrix(num2)
print('\nB=')
myMatrix.printMatrix(B)
########## Begin ##########
r=len(A)
c=len(A[0])
C = myMatrix.getMatrix(num2)
for i in range(0,r):
for j in range(0,c):
C[i][j]=A[i][j]+B[i][j]
########## End ##########
print('\nC=A+B=')
myMatrix.printMatrix(C) #打印矩阵C
第4关 判断单位矩阵
import myMatrix
num = int(input())
A = myMatrix.getMatrix(num)
print('A=')
myMatrix.printMatrix(A)
########## Begin ##########
r=len(A)
c=len(A[0])
flag=1
if r!=c:
flag=0
for i in range(0,r):
for j in range(0,c):
if i==j and A[i][j]!=1:
flag=0
if i!=j and A[i][j]!=0:
flag=0
########## End ##########
if flag == True:
print('A是单位矩阵')
else:
print('A不是单位矩阵')
第5关 杨辉三角
import myMatrix
n = int(input()) #杨辉三角总层数
########## Begin ##########
A=[[0]*n for _ in range(0,n)]
A[0][0]=1
for i in range(1,n):
A[i][0]=1
for i in range(1,n):
for j in range(1,n):
A[i][j]=A[i-1][j]+A[i-1][j-1]
########## End ##########
myMatrix.printMatrix(A) #打印矩阵A
print('-'*n*6) #打印分隔线
myMatrix.printMatrixAsYangHui(A) #打印杨辉三角
第6关 无人机地形导航数据处理
import myMatrix
num = int(input())
A = myMatrix.getMatrix(num)
print('A=')
myMatrix.printMatrix(A)
print('\n山峰坐标:')
########## Begin ##########
r=len(A)
c=len(A[0])
def check(x,y):
if x-1<0 or x+1>=r or y-1<0 or y+1>=c:
return 0
if A[x-1][y]>A[x][y]:
return 0
if A[x+1][y]>A[x][y]:
return 0
if A[x][y-1]>A[x][y]:
return 0
if A[x][y+1]>A[x][y]:
return 0
return 1
for i in range(0,r):
for j in range(0,c):
if check(i,j):
print("%d %d" % (i,j))
########## End ##########
第7关飞行炮弹空气阻力分析
import numpy as np
import myMatrix
########## Begin ##########
def fuc(S,v):
C=0.1
p=1.2
return 0.5*C*p*S*v*v
#F=[[0]*5 for _ in range(0,5)]
F=myMatrix.getMatrix(13)
for i in range(0,4):
for j in range(0,5):
F[i][j]=round(fuc(0.005*(i+1),100*(j+1)))
########## End ##########
myMatrix.printMatrix(F) #打印结果
myMatrix.drawMatrixIn3D(F) #绘制图形
第8关 幻方
import myMatrix
num = int(input())
A = myMatrix.getMatrix(num)
print('A=')
myMatrix.printMatrix(A)
########## Begin ##########
r=len(A)
c=len(A[0])
V=[0]*(r*c+1)
st=0
flag=1
for i in range(0,1):
for j in range(0,c):
st=st+A[i][j]
for i in range(0,r):
now=0
for j in range(0,c):
now=now+A[i][j]
V[A[i][j]]=1
if now!=st:
flag=0
for i in range(1,r*c+1):
if V[i]==0:
flag=0
for i in range(0,c):
now=0
for j in range(0,r):
now=now+A[j][i]
if now!=st:
flag=0
now=0
for i in range(0,c):
now=now+A[i][i]
if now!=st:
flag=0
now=0
for i in range(0,c):
now=now+A[i][c-i-1]
if now!=st:
flag=0
########## End ##########
if flag == True:
print('A是幻方')
else:
print('A不是幻方')