我是靠谱客的博主 义气金毛,最近开发中收集的这篇文章主要介绍Python实现斐波那契数列与跳台阶变体,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本篇记录了斐波那契数列的Python实现:递归与循环两种解法,以及一些化用的题目。

Python实现

递归

按传统的递归方式,简洁、优雅。写出来却是 O ( n 2 ) O(n^2) O(n2)的算法

def fibo(n):
	"""肥波那契函数"""
    if n < 3:
    	return 1
    else:
        return fibo(n-1) + fibo(n-2)

O ( n ) O(n) O(n)的算法

上面“简洁”的算法其实重复算了好多项。比如算fibo(6),它就算了三个fibo(3)、五个fibo(2)。从理论上分析,只要不多算,那就是 O ( n ) O(n) O(n)的算法——大约是算了n次fibo(n-1) + fibo(n-2)

思路也很简洁:构建一个循环,在每次循环中,都有两个变量储存下一次循环的fibo(n-1)fibo(n-2)。当然,循环开始和终止的边界条件是需要注意的。(拿几个数去试一试就行了)

def fibo(n):
	if n < 3:
		return 1
	frist = 1
	second = 1
	third = 1  # 没有这个会怎样?
	count = 3
	while count <= n:
	    third = second + frist
	    frist = second
	    second = third
	    count += 1
	return third

if __name__ == '__main__':  # 测试
	print(fibo(2))  # 1
    print(fibo(6))  # 8

当然,这个算法也有一个简洁的版本,只是不便于拓展和理解:

def fibo(n):
	"""假设输入值为整数,第1项为零。"""
	first, second = 0, 1
	for i in range(2, n + 1)

最后

以上就是义气金毛为你收集整理的Python实现斐波那契数列与跳台阶变体的全部内容,希望文章能够帮你解决Python实现斐波那契数列与跳台阶变体所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部