20190823昆仑万维:最大公约数与矩阵乘法

1.最大公约数

def maxyushu(a,b):
    a1,b1 = a,b 
    res = a1%b1
    while res!=0:
        a1 = b1
        b1 = res
        res = a1%b1
    return str(b1)

if __name__ == "__main__":
    a, b = map(int,input().split())
    print(maxyushu(a,b))

 

貌似是 A^1+A^2+...+A^m

矩阵的乘法(可能不太对):

def chengfa(A,B,n):
    res = []
    BT = [list(n) for n in zip(*B)]
    for i in range(n):
        rowitem = []
        for j in range(len(BT)):
            num = 0
            for br in range(len(BT[j])):
                num += A[i][br]*BT[j][br]
            rowitem.append(num)
        res.append(rowitem)
    return res

def xiangjia(A,B,n):
#     res = [[0]*n]*n
    res = [[0 for i in range(n)] for j in range(n)]
    for i in range(n):
        for j in range(n):
            res[i][j] = A[i][j]+B[i][j]
    return res
        
def matrixCo(matrix,n,k,m):
    temp1 = matrix
    res = matrix
    for i in range(1,k):
        temp2 = chengfa(temp1,matrix,n)
        print("temp2",temp2)
        res = xiangjia(res,temp2,n)
        print("res-------",res)
        temp1 = temp2
    print("---------------------------")
    return res   

if __name__ == "__main__":
#     n, k, m = map(int,input().split())
#     matrix = []
#     for i in range(n):
#         row = list(map(int,input().split()))
#         matrix.append(row)
    n,k,m = 2, 2, 4
    matrix = [[0, 1], [1, 1]]
    print(matrixCo(matrix,n,k,m))

  

转载于:https://www.cnblogs.com/ivyharding/p/11470015.html

你可能感兴趣的:(20190823昆仑万维:最大公约数与矩阵乘法)