defFibonacci_matrix(n): ''' def power(x, n): if n == 1: return x ans = power(np.dot(x,x), n/2) if n % 2: ans = np.dot(x, ans) return ans ''' defpower(x, n): if n == 1: return x res = np.eye(2) while n != 0: if n % 2: res = np.dot(x, res) x = np.dot(x, x) n /= 2 return res
if n == 0: return0 if n == 1: return1 q = ((1,1), (1,0)) return power(q, n-1)[0][0]
if __name__ == '__main__': a = Fibonacci_matrix(5) print (a)
近期评论