为了账号安全,请及时绑定邮箱和手机立即绑定

使用列表推导式的斐波那契数列

使用列表推导式的斐波那契数列

呼如林 2021-06-05 14:42:23
我想写一个列表推导式,它会给出Fibonacci直到 400 万的数字。我想将其添加到列表理解和求和均匀间隔的术语中。from math import sqrtPhi = (1 + sqrt(5)) / 2phi = (1 - sqrt(5)) / 2series = [int((Phi**n - phi**n) / sqrt(5)) for n in range(1, 10)]print(series)[1, 1, 2, 3, 5, 8, 13, 21, 34]这是一个有效的示例代码,我想使用列表理解编写类似的代码。请帮忙。a, b = 1, 1total = 0while a <= 4000000:    if a % 2 == 0:        total += a    a, b = b, a+b print(total)
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

列表推导本质上是一个并行过程;这是一个输入可迭代对象的过程,将某个函数应用于每个元素,并创建一个输出列表。应用此功能时,它会独立于其他元素应用于每个元素。因此,列表推导式不适合迭代算法,例如您提出的算法。它可以用在你的封闭式公式中:

sum([int((Phi**n - phi**n) / sqrt(5)) for n in range(1, 10) if int((Phi**n - phi**n) / sqrt(5))%2 == 0])

如果要使用迭代算法,生成器更合适。


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 283 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信