斐波那契数列迭代和递归
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
斐波那契数列迭代和递归
斐波那契数列是一个常见的数学概念,它的定义是:第一项和第二项为1,从第三项开始,每一项都等于前两项之和。
也就是说,数列从第三项开始是:1,1,2,3,5,8,13,21,34,...
这个数列可以用迭代和递归两种方式进行计算。
1. 迭代法:
```python
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
```
在这个实现中,我们从第一项开始,每次计算下一项,并更新当前的两个项。
2. 递归法:
```python
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
```
在这个实现中,我们使用了斐波那契数列的定义:`F(n) = F(n-1) + F(n-2)`。
注意,这个实现的效率非常低,因为它会重复计算许多项。
例如,计算`F(n)`时,我们会分别计算`F(n-1)`和`F(n-2)`,但在计算`F(n-1)`时,我们会再次计算`F(n-2)`。
这样的重复计算造成了严重的性能问题。
对于大的n,迭代方法通常更优,因为递归方法会因为重复计算同样的子问题而变得非常慢。