问题标签 [fibonacci]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java 程序斐波那契数列
我正在编写一个“简单”程序来确定斐波那契数列中的第 N 个数字。例如:序列中的第 7 个数字是:13。我已经完成了程序,它可以工作,但是从第 40 个数字开始它开始延迟,并且花费的时间越来越长。我的程序必须排到该系列的第 100 位。
我怎样才能解决这个问题,所以它不需要这么长时间?这是一个非常基本的程序,所以我不知道所有花哨的语法代码。我的公式是:
在超过第 40 个任期之前,这很有效。我还必须添加什么其他语句才能使其更快地获得更高的数字?
php - PHP:有人能解释一下这段代码是如何工作的吗?(斐波那契)
我保证这不是家庭作业。我只是一个好奇的新手。
这是如何做到的:
(聪明人写的)
产生与此相同的结果
(矿)
我想我只是不明白语法。里面有if语句吗?
java - 斐波那契数列算法
我试图找到斐波那契数列中的第一个数字以包含 N 个数字(N 在 500 和 2000 的范围内)。我尝试使用以下代码执行此操作:
问题是,当我测试 1500 位数字时,我得到的答案显然是错误的。我不知道答案应该是什么,我什至立即检查了它周围的答案,以防我的算法被 10 次方关闭(即我检查了 1499 位和 1501),但无济于事。有人看到有什么问题吗?
c# - 帮助 LINQ 表达式
如何编写一个 LINQ 表达式(首选方法调用语法),它给出一个位于特定范围内的斐波那契数字列表,比如 1 到 1000 ?
c - 在 C 中递归计算斐波那契数
我正在尝试通过编写一个简单的程序来输出斐波那契数来学习 C。它不工作。
斐波那契.h
斐波那契.c
fibonacci_recursive.c
这是我尝试构建项目时 VS 2010 给我的错误消息:
我在这里做错了什么?感谢您帮助 C 的新手。
c++ - 我如何在 1000 以下做斐波那契数列?
我很混乱??:(
c# - 在这种情况下,为什么 .NET 比 C++ 快?
确保在 IDE 之外运行。那是关键。
-edit- 我喜欢 SLaks 的评论。“这些答案中的错误信息数量惊人。” :D
冷静下来,伙计们。几乎所有人都错了。我确实进行了优化。
事实证明,我所做的任何优化都不够好。
我使用 gettimeofday 在 GCC 中运行代码(我将在下面粘贴代码)并使用g++ -O2 file.cpp
并获得比 C# 稍快的结果。
也许 MS 没有在这种特定情况下创建所需的优化,但在下载和安装 mingw 后,我经过测试发现速度几乎相同。
正义似乎是对的。我本可以发誓我在我的电脑上使用时钟并用它来计数,发现它速度较慢但问题解决了。在 MS 编译器中,C++ 的速度几乎没有慢两倍。
当我的朋友告诉我这件事时,我简直不敢相信。所以我拿了他的代码并在上面放了一些计时器。
我使用 C#而不是Boo 。我在 C# 中不断得到更快的结果。为什么?无论我使用什么数字,.NET 版本的时间几乎都是一半。
C++ 版本(坏版本):
C++ 版本(更好的版本):
C#版本:
海合会版本:
algorithm - 解决斐波那契数的递归
我不知道这个算法中的数学,可以使用一些帮助。
算法:
陈述
n < 2 是 O(1)
时间 n >=2 是 O(1)
返回 n 是 O(1) 时间 n>=2 是 - 返回 fib(n-1) + fib(n-2) 是 -
时间 n>=2 为 T(n-1) + T(n-2) +O(1)
总计: O(1) T(n-1) + T(n-2) + O(1)
T(n) = O(1) 如果 n < 2
T(n) = T(n-1) + T (n-2) + O(1) 如果 n>=2
php - 任何解决方案都是正确的解决方案吗?
在解决了一个困扰了我一段时间的编程挑战后,我总是对自己想,“它有效,这已经足够好了”。
我不认为这真的是正确的心态,在我看来,我认为我应该始终尝试以最佳性能进行编码。
无论如何,话虽如此,我只是尝试了一个 ProjectEuler 问题。具体问题#2。
我怎么能改进这个解决方案。我觉得它真的很冗长。就像我在递归中传递前一个数字一样。
请注意,这不是家庭作业。几百年前我离开了学校。我只是觉得无聊,正在处理 Project Euler 的问题
java - 这里的递归是如何工作的?
代码 1:
fibonacci
如果您还没有完成对它的解释,您将如何使用它?我已经能够理解在其他情况下使用递归,例如:
代码 2:
但是,在代码 2 的情况下,n
最终会达到它不满足的点,n>0
并且该方法将停止递归调用自身。n=1
但是,在代码 2 的情况下,如果是 2 和 3 和 5 的起点,我看不出它如何能够从 1 中获取自身,依此类推。另外,我看不出这条线是如何return fibonacci (n-1) + fibonacci (n-2)
工作的,因为fibonacci (n-2)
必须在某种意义上包含fibonacci (n-1)
才能工作,但它还没有。
我正在看的那本书说它会起作用。它是如何工作的?