def disp(A):#输出方阵A
n=len(A)
for i in range(n):
for j in range(n):
print('%d'%(A[i][j]),end="")
print()
def compression(A,a):#压缩矩阵A到a中,A是一个对称矩阵
for i in range(len(A)):
for j in range(i+1):#这两循环遍历了三角,可以理解为上三角或者是下三角
k=i*(i+1)//2+j#a中序号与A中序号之间的关系
a[k]=A[i][j]
def getk(i,j):#求原矩阵中行号为i,列号为j在a中的位置
if i>=j:
return(i*(i+1)//2+j)
else:
return(j*(j+1)//2+i)
def Mult(a,b,C,n):#矩阵乘法,矩阵乘法的计算机形式的描述可以这样说,ij位置的元素的获得是这样操作的,第i行的所有元素*第j列的所有元素
for i in range(n):
for j in range(n):
s=0
for k in range(n):#这里是从a中获得相应的数字的
k1=getk(i,k)
k2=getk(k,j)
s+=a[k1]*b[k2]
C[i][j]=s