Python解决N阶台阶走法问题的方法分析

 更新时间:2017年12月28日 10:52:43   作者:afanty_mo  
这篇文章主要介绍了Python解决N阶台阶走法问题的方法,简单描述了走台阶问题,并结合实例形式分析了Python使用递归与递推算法解决走台阶问题的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python解决N阶台阶走法问题的方法。分享给大家供大家参考,具体如下:

题目:一栋楼有N阶楼梯,兔子每次可以跳1、2或3阶,问一共有多少种走法?

Afanty的分析:

遇到这种求规律的问题,自己动动手推推就好,1阶有几种走法?2阶有几种走法?3阶有几种走法?4阶有几种走法?5阶有几种走法?

对吧,规律出来了!

易错点:这不是组合问题,因为第1次走1阶、第2次走2阶不同于 第1次走2阶、第2次走1阶

下面是Python的递归实现代码:

def allMethods(stairs):
  '''''
  :param stairs:the numbers of stair
  :return:
  '''
  if isinstance(stairs,int) and stairs > 0:
    basic_num = {1:1,2:2,3:4}
    if stairs in basic_num.keys():
      return basic_num[stairs]
    else:
      return allMethods(stairs-1) + allMethods(stairs-2) + allMethods(stairs-3)
  else:
    print 'the num of stair is wrong'
    return False

当然也可以用非递归的方法来实现,下面就是基于递推法的代码:

def allMethod(stairs):
  '''''递推实现
  :param stairs: the amount of stair
  :return:
  '''
  if isinstance(stairs,int) and stairs > 0:
    h1,h2,h3,n = 1,2,4,4
    basic_num = {1:1,2:2,3:4}
    if stairs in basic_num.keys():
      return basic_num[stairs]
    else:
      while n <= stairs:
        temp = h1
        h1 = h2
        h2 = h3
        h3 = temp + h1 + h2
      return h3
  else:
    print 'the num of stair is wrong'
    return False

好的,以上就是分别用了递归和递推法实现的过程。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

您可能感兴趣的文章:

相关文章

  • pytorch 共享参数的示例

    pytorch 共享参数的示例

    今天小编就为大家分享一篇pytorch 共享参数的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python爬虫之必备chardet库

    Python爬虫之必备chardet库

    这篇文章主要介绍了Python爬虫之必备chardet库,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • pyinstaller执行报错的问题解决

    pyinstaller执行报错的问题解决

    有时候,PyInstaller可能无法正确识别和打包所有的依赖项,导致名称错误,本文主要介绍了pyinstaller执行报错的解决方案,感兴趣的可以了解一下
    2023-11-11
  • python使用dlib进行人脸检测和关键点的示例

    python使用dlib进行人脸检测和关键点的示例

    这篇文章主要介绍了python使用dlib进行人脸检测和关键点的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Django完整增删改查系统实例代码

    Django完整增删改查系统实例代码

    Django实现增删改查,主要是依赖于models来实现的,下面这篇文章主要给大家介绍了关于Django完整增删改查系统的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Django项目基础配置和基本使用过程解析

    Django项目基础配置和基本使用过程解析

    这篇文章主要介绍了Django项目基础配置和基本使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • python 远程执行命令的详细代码

    python 远程执行命令的详细代码

    有时会需要在远程的机器上执行一个命令,并获得其返回结果。对于这种情况,python 可以很容易的实现。今天通过实例代码介绍下python 远程执行命令的相关知识,感兴趣的朋友一起看看吧
    2022-02-02
  • Python实现的txt文件去重功能示例

    Python实现的txt文件去重功能示例

    这篇文章主要介绍了Python实现的txt文件去重功能,涉及Python针对txt文本文件的读写、字符串遍历、判断相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python 数据处理库 pandas 入门教程基本操作

    Python 数据处理库 pandas 入门教程基本操作

    pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库。本文是对Python 数据处理库 pandas 入门教程,非常不错,感兴趣的朋友一起看看吧
    2018-04-04
  • 解决django框架model中外键不落实到数据库问题

    解决django框架model中外键不落实到数据库问题

    这篇文章主要介绍了解决django框架model中外键不落实到数据库问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05

最新评论