如何解决选择了两个第一个值的类卢卡斯系列
我想创建一个可构造类似Lucas-(或Fibonacci-)序列的函数。我希望能够选择两个第一个数字,然后使下一个成为前两个数字的总和。我思考这个问题的方式是:
def lucaslike(a,b,n):
x = [a,b]
for i in range(2,n+1):
return x.append(x[i-1] + x[i-2])
但是在尝试使用它print(lucaslike(3,6,10))
时,我发现该函数未定义。
例如,当两个第一个值是a = 3和b = 6时,我希望能够告诉该函数生成类似Lucas的n = 10个项的序列。因此输出应为:[3,9,15,24,39,...]
。
解决方法
您可以这样更改代码:
def lucaslike(a,b,n):
x = [a,b]
for i in range(2,n+1):
x.append(x[i-1] + x[i-2])
return x
像这样,该函数将仅在整个Lucas_like语句列表的末尾返回。
lucaslike(3,6,10)
或print(lucaslike(3,10))
将返回[3,9,15,24,39,63,102,165,267,432]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。