首页 > 代码库 > 巧用Hint
巧用Hint
一般计算fibonacci的方法:
1 def fibonacci (n):2 if n == 0 or n == 1:3 return 14 else:5 return fibonacci(n-1) + fibonacci(n-2)
这样的 call graph for fibonacci with n=4:
当计算 fibonacci(30)的时候还可以,当计算 fibonacci(50)的时候就很慢了。
好的方法是:用dict记录下来之前计算过的值。
A previously computed value that is stored for later use is called a hint.
好的方法是:
previous = {0:1, 1:1}def fibonacci(n): if previous.has_key(n): return previous[n] else: newValue = fibonacci(n-1) + fibonacci(n-2) previous[n] = newValue return newValue
这样就很快了。
类似的计算阶乘:
previous = {1:1,2:2}def n(i): if previous.has_key(i): return previous[i] else: newValue = i*n(i-1) previous[i] = newValue return previous[i]
---How to Think Like a Computer Scientist(Learning with Python)
巧用Hint
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。