Exemple #1
0
def matrixaddition(A, B):
    (l, c) = (len(A), len(A[0]))
    if (l, c) != (len(B), len(B[0])):
        raise Exception("Matrices have not same dimensions")
    M = matrix.init(l, c, 0)
    for i in range(l):
        for j in range(c):
            M[i][j] = A[i][j] + B[i][j]
    return M
def matrixproduct(A, B):
    m = len(A)
    n = len(A[0])
    if n != len(B):
        raise Exception("Incompatible dimensions")
    p = len(B[0])
    M = matrix.init(m, p, 0)
    for i in range(m):
        for j in range(p):
            for k in range(n):
                M[i][j] = M[i][j] + A[i][k] * B[k][j]
    return M
Exemple #3
0
def buildMaxMat(T):
    l = len(T)
    c = len(T[0])
    M = matrix.init(l, c, 0)

    for j in range(c):
        M[0][j] = T[0][j]

    for i in range(1, l):
        #FIXME
        pass

    return M
Exemple #4
0
def buildMaxMat(T):
    l = len(T)
    c = len(T[0])
    M = matrix.init(l, c, 0)

    for j in range(c):
        M[0][j] = T[0][j]

    for i in range(1, l):
        M[i][0] = T[i][0] + max(M[i-1][0], M[i-1][1])
        for j in range(1, c-1):
            M[i][j] = T[i][j] + max(M[i-1][j-1], M[i-1][j], M[i-1][j+1])
        M[i][c-1] = T[i][c-1] + max(M[i-1][c-2], M[i-1][c-1])
    
    return M
Exemple #5
0
def Siamise(n):
    """
    builds a magic square of n-odd size
    starts in the middle of last line, then going SE
    """
    S = matrix.init(n, n, 0)
    i = n - 1
    j = n // 2
    S[i][j] = 1
    for k in range(2, n * n + 1):
        i2 = (i + 1) % n
        j2 = (j + 1) % n
        if S[i2][j2] == 0:
            (i, j) = (i2, j2)
        else:
            i = i - 1
            if i == -1:
                i = n - 1
        S[i][j] = k
    return S