用Python进行Fibonacci练习的最佳答案是什么?你知道吗
http://www.scipy-lectures.org/intro/language/functions.html#exercises
Exercise: Fibonacci sequence
Write a function that displays the n first terms of the Fibonacci sequence, defined by:
u0 = 1; u1 = 1
u(n+2) = u(n+1) + un
如果这只是问一个斐波那契码,我会这样写:
def fibo_R(n):
if n == 1 or n == 2:
return 1
return fibo_R(n-1) + fibo_R(n-2)
print(fibo_R(6))
。。。但是,在本练习中,初始条件都是1和1,计算将朝正方向(+)。我不知道如何设置结束条件。我一直在寻找答案,但一个也找不到。你怎么回答这个问题?你知道吗
如果您想要一个超级内存高效的解决方案,请使用只按需生成下一个数字的生成器:
递归解决方案是最优雅的,但是它很慢。Keiwan的循环对于大量元素来说是最快的。你知道吗
是的,绝对没有DSM正确观察到的全局。谢谢!你知道吗
计算斐波那契数列的最佳方法是从开头开始循环,直到计算出第n个数。递归产生了太多的方法调用,因为您要反复计算相同的数字。你知道吗
此函数计算第一个
n
斐波那契数,将其存储在列表中,然后打印出来:请注意,
u_(n+2) = u_(n+1) + u_n
等同于u_n = u_(n-1) + u_(n-2)
,即您以前的代码仍然适用。斐波那契数的定义是根据他们的前辈,无论你如何措辞的问题。你知道吗解决这个问题的一个好方法是定义一个generator,它按需生成斐波那契序列的元素:
然后可以通过
itertools.islice
获取first N items of the generator,或者使用enumerate
跟踪所看到的数字:拥有生成器意味着您可以使用相同的代码来解决许多不同的问题(尽管效率很高),例如:
相关问题 更多 >
编程相关推荐