Example #1
0
def matrix_pow(M, n):
    res = [[1, 0], [0, 1]]
    while n > 0:
        if n & 1:
            res = matrixmultiply(res, M)
        M = matrixmultiply(M, M)
        n = n >> 1
    return res
Example #2
0
def matrix_pow(M, n):
    res = [[1, 0], [0, 1]]
    while n > 0:
        if n & 1:
            res = matrixmultiply(res, M)
        M = matrixmultiply(M, M)
        n = n >> 1
    return res
Example #3
0
def fibmatrix(n):
    """ initial matrix - derived from F1 = F1 and F2 = F1 + F0 """
    Mat = [[0, 1], [1, 1]]
    F = [[0], [1]]
    Fn = matrix_pow(Mat, n)
    ans = matrixmultiply(Fn, F)
    return ans[0]
Example #4
0
def fibmatrix(n):
    """ initial matrix - derived from F1 = F1 and F2 = F1 + F0 """
    Mat = [[0, 1], [1, 1]]
    F = [[0], [1]]
    Fn = matrix_pow(Mat, n)
    ans = matrixmultiply(Fn, F)
    return ans[0]