Python 求斐波那契数列第n项前20项和

斐波纳契数列_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
斐波纳契数列
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩59页未读,继续阅读
你可能喜欢利用Python计算第一个达到一百万位数的斐波那契数列各位数之和 结果为4501552
以下是我用到的代码,不是中间需要一些人工操作来加快收敛性,有兴趣读者可以写代码加快收敛
首先执行这个,可以大致确定一百万个数所在斐波那契序列的位置
while count&4850000:
result=str(k)
print('k长度')
k_len=len(result)
print(k_len)
for item in range(0,len(result)):
sum+=int(result[item])
print('k各位数之和')
print(sum)
file_object = open('python.txt','w')
list=[str(i)+'\n',str(j)+'\n',str(k)+'\n',str(k_len)+'\n']
file_object.writelines(list)
file_object.close()接下来就是根据上一步的结果,确定向前还是向后
向前的代码为
input = open('python.txt')
i=input.readline()
i=i.strip('\n')
j=input.readline()
j=j.strip('\n')
k=input.readline()
k=k.strip('\n')
print('Read Data end')
input.close()
while count&4000:
result=str(k)
print('k长度')
k_len=len(result)
print(k_len)
file_object = open('python.txt','w')
list=[str(i)+'\n',str(j)+'\n',str(k)+'\n',str(k_len)+'\n']
file_object.writelines(list)
file_object.close()
print('iterator up结束')向后的代码为
input = open('python.txt')
i=input.readline()
i=i.strip('\n')
j=input.readline()
j=j.strip('\n')
k=input.readline()
k=k.strip('\n')
print('Read Data end')
input.close()
while count&10:
result=str(k)
print('k长度')
k_len=len(result)
print(k_len)
file_object = open('python.txt','w')
list=[str(i)+'\n',str(j)+'\n',str(k)+'\n',str(k_len)+'\n']
file_object.writelines(list)
file_object.close()
print('iterator down结束')为了查看结果的方便还有一个查看txt内容的代码
input = open('python.txt')
i=input.readline()
i=i.strip('\n')
print('i的长度')
print(len(i))
j=input.readline()
j=j.strip('\n')
print('j的长度')
print(len(j))
k=input.readline()
k=k.strip('\n')
print('k的长度')
print(len(k))
k_len=input.readline()
k_len=k_len.strip('\n')
k_len=int(k_len)
print('数据k长度')
print(k_len)
for item in range(0,len(result)):
sum+=int(result[item])
print('各位数之和')
print(sum)实验过程遇到的问题
本问题的关键是如果你每次k更新后都判断k的位数的话,程序会变得特别卡,然而如果仅仅是执行更新k的操作的话程序是执行效率很高的,因此需要减少k位数的计算。然后遇到的问题就是确定第一百万位斐波那契数列出现的位置,采用二分法的思想。根据每一步的反馈的k的位数,直至找到满足要求的k.
本实验还有一个问题就是,因为i,j,k都是位数比较大,所以到最后读写txt就变成影响效率的主要因素。由于对python还不是特别了解,不知道能不能像matlab那样,将这些数据不放txt,而放在内存中,可以被直接调用的话,程序的效率将会提高的更快。更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
按住视频可进行拖动
把视频贴到Blog或BBS
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
收藏成功,可进入查看所有收藏列表
方式1:用手机看
用爱奇艺APP或微信扫一扫,在手机上继续观看:
【高中数学-数列与级数】40斐波那契数列Fibonacci Seq
方式2:一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/164eL4
下载安装包到本机:&&
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/164eL4
下载安装包到本机:&&
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
爸爸去哪儿2游戏 立即参与
【高中数学-数列与级数】40斐波那契数列Fibonacci Seq
播放量数据:
你可能还想订阅他们:
&正在加载...
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"&
&a href="javascript:void(0);"&
&span>{{start}}-{{end}}&/span&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"&
&a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《》剧集:
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入300字
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制> 初学者学Python - 斐波那契数列(二)
初学者学Python - 斐波那契数列(二)
IAGNUII & &
发布时间: & &
浏览:19 & &
回复:2 & &
悬赏:0.0希赛币
菜鸟学Python - 斐波那契数列(二)
  上一次我们写了一个关于斐波那契数列的程序,为了提高对Python的灵活运用,这次再写一个小程序。
  大家可以比较一下每个程序的优势,看看是否得到什么灵感。
  01 import sys02 03 # Here's our main function. Python is pretty efficient here. You04 # should notice that there are no braces. Python is dependant on05 # whitespace to define blocks.06 07 def main():08  print "\nHow many numbers of the sequence would you like "09  n = int(sys.stdin.readline())10  fibonacci(n)11 12 # Here's the fibonacci function. Like in Perl, you can assign multiple13 # variables on a line without using a temporary variable. Also, the for 14 # loop here works more like a foreach loop by setting a range from 0 to n.15 16 def fibonacci(n):17  a,b = 0,118  for i in range(0,n):19   print a20   a,b, = b,a+b21 22 main()
  两个函数实现了这个算法:
  1、main函数主要是获取用户输入,并执行程序。
  2、fibonacci函数就是主要的算法实现了。
  3、大家关键是看看程序的第20行,这个是程序的亮点。
  如果是java呢?
  给楼主一个更牛的:  def fib( ):
''' Unbounded generator for Fibonacci numbers '''
x, y = 0, 1
while True:
x, y = y, x + y
if __name__ == "__main__":
import itertools
print list(itertools.islice(fib( ), 10))
iam_liu & &
& & (0)(0)  mirguest 写道  给楼主一个更牛的:  def fib( ):
''' Unbounded generator for Fibonacci numbers '''
x, y = 0, 1
while True:
x, y = y, x + y
if __name__ == "__main__":
import itertools
print list(itertools.islice(fib( ), 10))
谢谢哈 不错不错,但是对于我这菜鸟来说 itertools 很少用 学习了startNumber = int(raw_input("Enter the start number here "))endNumber = int(raw_input("Enter the end number here "))def fib(n):&&& if n & 2:&&&&&&& return n&&& return fib(n-2) + fib(n-1)map(fib, range(startNumber, endNumber))这个怎么样iam & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&python实现斐波那契递归函数的方法
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了python实现斐波那契递归函数的方法,通过一个非常简单的递归函数加以实现,需要的朋友可以参考下
本文以一个简单的实例讲述了python实现斐波那契数列数列递归函数的方法,代码精简易懂。分享给大家供大家参考之用。
主要函数代码如下:
def fab(n):
result=int(fab(n-1))+int(fab(n-2))
return result
测试代码如下:
for i in range(10):
print fab(i)
希望本文所述对大家Python程序设计的学习有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 斐波那契数列通项公式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信