Questions tagged «fibonacci»

斐波那契数列是由F(0)= 0,F(1)= 1,F(n + 2)= F(n)+ F(n + 1)定义的序列。前几项是0、1、1、2、3、5、8。

12
斐波那契数列的计算复杂度
我了解Big-O表示法,但是我不知道如何为许多函数计算它。特别是,我一直在尝试找出Fibonacci序列的朴素版本的计算复杂性: int Fibonacci(int n) { if (n <= 1) return n; else return Fibonacci(n - 1) + Fibonacci(n - 2); } 斐波那契数列的计算复杂度是多少,如何计算?

30
Java递归斐波那契序列
请解释以下简单代码: public int fibonacci(int n) { if(n == 0) return 0; else if(n == 1) return 1; else return fibonacci(n - 1) + fibonacci(n - 2); } 我对最后一行感到困惑,尤其是因为例如,如果n = 5,则将调用fibonacci(4)+ fibonacci(3),依此类推,但我不理解该算法如何以此来计算索引5的值方法。请详细解释!

30
如何写斐波那契数列?
我最初对程序进行了错误编码。我没有为程序返回范围内的斐波那契数(即startNumber 1,endNumber 20应该仅= 1和20之间的那些数字),而是为程序编写了显示范围内的所有斐波那契数(即startNumber 1,endNumber 20)。显示=前20个斐波那契数字)。我以为我有一个确定的代码。我也不明白为什么会这样。 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) print map(fib, range(startNumber, endNumber)) 有人在我的第二部分中指出了这一点(由于重复而被关闭-https: //stackoverflow.com/questions/504193/how-to-write-the-fibonacci-sequence-in-python-part-ii)需要使用while循环将startNumber和endNumber通过生成器传递。有人可以指出我的操作方向吗?欢迎任何帮助。 我是一名学习型程序员,遇到了一些麻烦。我被要求编写一个程序,该程序将通过用户输入的开始编号和结束编号来计算和显示斐波那契数列(即,startNumber = 20 endNumber = 100,并且它将仅显示该范围内的数字)。诀窍是将其包含在内(我不知道如何在Python中使用它?-我假设这意味着要使用包含范围?)。 到目前为止,我所没有的是实际的编码,而是: 将Fib序列公式写成无穷大 仅从Fib序列显示startNumber到endNumber。 我不知道从哪里开始,我想提出想法或深入了解如何编写此内容。我也曾尝试编写Fib序列论坛,但我也对此一无所知。


9
为什么斐波那契数在计算机科学中很重要?
斐波那契数已成为计算机科学学生进行递归的热门介绍,并且有一个强有力的论据认为它们在自然界中会持久存在。由于这些原因,我们许多人都熟悉它们。 它们也存在于其他地方的计算机科学中。基于序列的令人惊讶的高效数据结构和算法。 我想到了两个主要示例: 斐波那契堆比二项式堆具有更好的摊销运行时间。 斐波那契搜索与有序数组上的二进制搜索共享O(log N)运行时间。 这些数字是否具有某些特殊性质,使其比其他数字序列具有优势?是空间品质吗?他们还有什么其他可能的应用程序? 对我来说,这很奇怪,因为在其他递归问题中还有很多自然数序列,但是我从未见过加泰罗尼亚语堆。


20
测试数字是否为斐波那契
我知道如何制作斐波那契数字列表,但我不知道如何测试给定数字是否属于斐波那契列表-一种想到的方法是生成fib列表。直到该数字为止,并查看它是否属于数组,但是必须有另一个更简单,更快速的方法。 有任何想法吗 ?


10
逆斐波那契算法?
有数十种方法可以计算任意n的F(n),其中许多具有很大的运行时和内存使用率。 但是,假设我想问相反的问题: 给定F(n)的n> 2,n是多少? (因为F(1)= F(2)= 1且没有明确的逆,所以n> 2的限制在其中)。 解决这个问题的最有效方法是什么?通过枚举斐波那契数并在达到目标数时停止,可以很容易地在线性时间内完成此操作,但是有什么方法可以比这更快吗? 编辑:当前,此处发布的最佳解决方案使用O(log n)内存在O(log n)时间运行,假设数学运算在O(1)中运行并且一个机器字可以在O(1)空间中保存任何数字。我很好奇是否有可能降低内存需求,因为您可以使用O(1)空间计算斐波那契数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.