全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python实现斐波那契数列的方法示例

介绍

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下递归的方法定义:

F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

1. 元组实现

fibs = [0, 1]
for i in range(8):
 fibs.append(fibs[-2] + fibs[-1])

这能得到一个在指定范围内的斐波那契数列的列表。

2. 迭代器实现

class Fibs:
 def __init__(self):
  self.a = 0
  self.b = 1

 def next(self):
  self.a, self.b = self.b, self.a + self.b
  return self.a

 def __iter__(self):
  return self

这将得到一个无穷的数列,可以采用如下方式访问:

fibs = Fibs()
for f in fibs:
 if f > 1000:
  print f
  break
 else:
  print f

3. 通过定制类实现

class Fib(object):
 def __getitem__(self, n):
  if isinstance(n, int):
   a, b = 1, 1
   for x in range(n):
    a, b = b, a + b
   return a
  elif isinstance(n, slice):
   start = n.start
   stop = n.stop
   a, b = 1, 1
   L = []
   for x in range(stop):
    if x >= start:
     L.append(a)
    a, b = b, a + b
   return L
  else:
   raise TypeError("Fib indices must be integers")

这样可以得到一个类似于序列的数据结构,可以通过下标来访问数据:

f = Fib()
print f[0:5]
print f[:10]

4.Python实现比较简易的斐波那契数列示例

先放一个斐波那契数列出来瞧瞧…

0 1 1 2 3 5 8 13 21 34 55 89 144 233...

首先给头两个变量赋值:

i, j = 0, 1

当然也可以这样写:

i = 0
j = 1

接着定个范围,就10000之内好了:

while i < 10000:

然后在while语句中输出i并设计逻辑:

 print i,
 i, j = j, i+j

在这里需要注意:“i, j = i, i+j”这条代码不能写成如下所示:

i = j
j = i+j

如果写成这样,j就不是前两位相加的值,而是已经被j赋过值的i和j相加的值,这样的话输出的数列会如下所示:

0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192

正确的整片代码如下所示:

i, j = 0, 1
while i < 10000:
 print i,
 i, j = j, i+j

最后展示运行结果:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765

总结

以上就是关于利用Python实现斐波那契数列的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# python斐波那契数列  # python写斐波那契数列  # python求斐波那契数列  # 利用Python实现斐波那契数列的方法实例  # python3实现斐波那契数列(4种方法)  # 如何使用Python实现斐波那契数列  # python斐波那契数列的计算方法  # python求斐波那契数列示例分享  # 详解python使用递归、尾递归、循环三种方式实现斐波那契数列  # Python实现斐波那契数列的多种写法总结  # 所示  # 递归  # 在这里  # 好了  # 两位  # 数据结构  # 这条  # 可以通过  # 这样一个  # 可以得到  # 指的是  # 类似于  # 这将  # 需要注意  # 这样的话  # 这能  # 之内  # 迭代  # 来访问  # 有疑问 


相关文章: 如何在Golang中指定模块版本_使用go.mod控制版本号  家庭建站与云服务器建站,如何选择更优?  简单实现Android文件上传  大连网站制作公司哪家好一点,大连买房网站哪个好?  建站主机选虚拟主机还是云服务器更好?  如何通过商城自助建站源码实现零基础高效建站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  ,柠檬视频怎样兑换vip?  网站制作服务平台,有什么网站可以发布本地服务信息?  如何在宝塔面板中创建新站点?  电商平台网站制作流程,电商网站如何制作?  如何破解联通资金短缺导致的基站建设难题?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  建站之星备案是否影响网站上线时间?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  北京网站制作的公司有哪些,北京白云观官方网站?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  常州企业建站如何选择最佳模板?  宝塔建站助手安装配置与建站模板使用全流程解析  如何快速查询域名建站关键信息?  测试制作网站有哪些,测试性取向的权威测试或者网站?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  javascript中对象的定义、使用以及对象和原型链操作小结  如何通过虚拟机搭建网站?详细步骤解析  如何用5美元大硬盘VPS安全高效搭建个人网站?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  北京网站制作网页,网站升级改版需要多久?  网站制作话术技巧,网站推广做的好怎么话术?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  建站之星代理费用多少?最新价格详情介绍  如何用y主机助手快速搭建网站?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何选择高效便捷的WAP商城建站系统?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  高端云建站费用究竟需要多少预算?  建站之星如何快速生成多端适配网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  模具网站制作流程,如何找模具客户?  如何选择PHP开源工具快速搭建网站?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  python的本地网站制作,如何创建本地站点?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。