Python 斐波那契数列优化
2018-05-08 20:14
288 查看
最简单版本
使用装饰器缓存优化
使用缓存达到与循环数组相似的效果
矩阵快速幂
def fib(n): return 1 if n < 2 else fib(n - 1) + fib(n - 2) print(fib(30)) 1346269
使用装饰器缓存优化
使用缓存达到与循环数组相似的效果
def cache(fun): fibs = {} def wrapper(n): if n in fibs: return fibs res = fun(n) fibs = res return res return wrapper @cache def fib(n): return 1 if n < 2 else fib(n - 1) + fib(n - 2) print(fib(30)) 1346269
矩阵快速幂
import numpy as np def power(m, n): if n <= 1: return m t = power(m, n // 2) if n % 2 == 0: return np.dot(t, t) return np.dot(m, np.dot(t, t)) def fib(n): mat = np.array([[1, 1], [1, 0]]) t = power(mat, n)[0][1] print(t) for i in range(1, 40): fib(i) 1 1 2 3 5 8 13 21 34 55 89
相关文章推荐
- Python语言打印斐波那契数列
- 斐波那契数列(C++ 和 Python 实现)
- 斐波那契数列递归实现和优化
- 协同过滤算法之UserCF算法的python实现及部分优化
- Python性能优化的20条建议
- Python代码优化
- 20条优化Python性能的建议
- Python 实现斐波那契数列
- python用profile、hotshot、timeit协助程序性能优化
- python 斐波那契数列
- 排序算法(三)冒泡、选择排序的Python实现及算法优化详解 推荐
- 分享:优化Python代码
- python剑指offer系列斐波那契数列
- Python (1) 性能试验:斐波那契数列
- python下代码优化的一个例子
- python 读写锁(优化)
- 删除目录下相同文件的python代码(逐级优化)
- python性能优化摘录 分类: python 2013-01-17 18:01 1192人阅读 评论(0) 收藏
- 优化算法--以Python实现(2)
- python基础===Python 代码优化常见技巧