首页 > 代码库 > python_斐波那契数列
python_斐波那契数列
什么是斐波那契数列?
-- 一组第从第三个值开始,每个值都等于前两个值之和的一种有意思的数列
如[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
如何用程序进行实现?
-- 逻辑整理
初始值n_1 = 1, n_2 = 1
n_3 = n_1 + n_2
第三个值开始,每个值都是前两个值之和,假如n_1 = n_2 ,n_2 = n_3,
实现了整体 n_1, n_2往后移动一个数,也就是说,现在的n_1 +n_2 等价于 n_2 + n_3
其结果虽然给n_3接收,但是n_3本质上是第四个数了,不妨后面的数都是如此,嘉祥n_3无限往后移
n_3 可以代替任何后面的数
-- 程序化:
list_fab = [] # 定义接收fab值列表 def fab(n): n_1, n_2 = 1, 1 # 定义初始值 n_1=1,n_2=1 list_fab.append(n_1) # 把两个初始值加入到fab值列表 list_fab.append(n_2) for i in range(n-2): # 按输入要求几个减去2,因为有两个初始值 n_3 = n_1 + n_2 # 第三个值 = 前两个值之和 list_fab.append(n_3) # 把加起来的值加入到fab值列表 n_1, n_2 = n_2, n_3 # n_1和n_2同步往后移一位 return list_fab # 返回结果 result = fab(10) # 接收结果 print(list_fab, len(list_fab)) # 打印结果
这个实现的是正向推导,没有实现子问题划分——从后面推导
python_斐波那契数列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。