Python中的斐波那契数列

 

 

        你好,Python 爱好者!

        在本Python 教程系列的最后一节中,我们讨论了在 Python 中解决 问题的递归方法并通过一些示例对其进行了理解。在本文中,我们将更进一步。我们将在 Python 编程语言中处理斐波那契数列。这是编程世界中一个非常著名的问题。如果你是一个绝对的初学者,那么没关系。我们将从一个非常初学者的水平来理解斐波那契数列。如果您正在关注这个Python 教程系列,那么您将很容易理解。

斐波那契数列

        斐波那契数列是一个整数序列。序列中的第一个和第二个数字是 0 和 1。序列中的后续项计算为前两项之和。它看起来像这样:

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">0,1,1,2,3,5,8,13,21,...</span></span></span>

查找斐波那契数列第 n 项的迭代方法

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">def fibonacci(n): 
    assert n>0 
    secondLast = 0 
    Last = 1 
    if n == 1: 
        print(secondLast) 
    elif n == 2: 
        print(Last) 
    else: 
        for i in range(3, n+1):
            结果 = secondLast + Last 
            secondLast = Last 
            Last = 结果
        print(result) 
        
fibonacci(8) 
fibonacci(7) 
fibonacci(4)</span></span></span>

        代码的输出是:

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">13 
8 
2</span></span></span>

        在函数 Fibonacci 中,我们将n作为参数。这个n应该大于0。我们都知道斐波那契数列的最后一项是前两项之和。记住这一点,我们分配两个变量,secondLastLast。斐波那契数列从 0 开始,然后是 1,依此类推。所以我们在上面代码中使用的 if-elif-else 控制结构中使用了这个逻辑。对于序列的前两个数字,我们有 0 和 1。接下来,从 3 到 n+1,else 条件将处理我们的输入。假设,我们想知道斐波那契数列的第 8 项。for 循环将从 3 次迭代到 9 次(不包括 9 次)。变量结果是secondLastLast的总和值变量的值。接下来,将Last变量的值分配给secondLast变量。接下来,结果的值存储在Last变量中。并在成功迭代 for 循环之后。我们将打印结果

查找斐波那契数列第 n 项的递归方法

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">def fibonacci(n): 
    assert n>0 
    if n == 1: 
        return 0 
    elif n == 2: 
        return 1 
    else: 
        return fibonacci(n-1) + fibonacci(n-2)</span><span style="color:#292929">打印(斐波那契(8))
打印(斐波那契(7))
打印(斐波那契(4))</span></span></span>

        上述代码的输出与前面代码的输出相同:

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">13 
8 
2</span></span></span>

        在这个斐波那契函数中,我们将 n 作为参数。n 应大于 0。如果 n 的输入值为 1 和 2,则代码的输出分别为 0 和 1。现在处于else 状态我们只是返回具有不同参数值的函数本身的总和。通过让 n 的值来理解这一点。假设 n 的值为 4。然后 else 条件返回 fibonacci(3) 和 fibonacci(2) 的总和。再次将 fibonacci(3) 的值分为两部分:fibonacci(2) 和 function(1)。fibonacci(1) 的值是 1。这样,整个问题就分解成一个更简单的问题,然后自己计算。运行代码后。您将获得相同的输出。递归方法最好的部分是,与解决同一问题的迭代方法相比,我们使用了更少的代码行。

 七爪网7claw.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值