Javascript 定制/修改';斐波那契&x27;数列
我需要对斐波那契序列产生一个更加不同的实现。下面是实现Javascript 定制/修改';斐波那契&x27;数列,javascript,arrays,fibonacci,Javascript,Arrays,Fibonacci,我需要对斐波那契序列产生一个更加不同的实现。下面是实现 (FSM) - FSM(0) = 0, FSM(1) = 1, FSM(n) = FSM(n - 2) + FSM(n - 1) / n 如何在javascript中实现这一点?我应该输入一个大整数60000000,然后得到序列中接下来的10个数字 请注意等式的(n-1)部分有a/n 我当前的代码如下所示: var fibonacci = (function() { var memo = {};
(FSM) - FSM(0) = 0,
FSM(1) = 1,
FSM(n) = FSM(n - 2) + FSM(n - 1) / n
如何在javascript中实现这一点?我应该输入一个大整数60000000
,然后得到序列中接下来的10个数字
请注意等式的(n-1)部分有a/n
我当前的代码如下所示:
var fibonacci = (function() {
var memo = {};
function f(n) {
var value;
if (n in memo) {
value = memo[n];
} else {
if (n === 0 || n === 1)
value = n;
else
value = f(n - 1)/n + f(n - 2);
memo[n] = value;
}
console.log(value);
return value;
}
return f;
})();
fibonacci(10);
现在我的任务是“从60000000个元素开始,得到以下10个修正的斐波那契数”
如果我通过斐波那契(60000000);这将崩溃。更新: 试试下面的一个。 参数:
n
从何处开始保存号码,m
要保存多少号码
function getFibonacci(n,m) {
var a = 0, b = 1, z = null, arr = [], c = 0;
for ( var i = 0; i <= n; i++ ) {
if ( a >= n ) {
if ( c >= m ) {
return arr;
}
arr.push(a);
c++;
}
z = a + b;
a = b;
b = z;
}
}
getFibonacci(60000000,10); // [63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976]
函数getFibonacci(n,m){
var a=0,b=1,z=null,arr=[],c=0;
对于(变量i=0;i=n){
如果(c>=m){
返回arr;
}
arr.push(a);
C++;
}
z=a+b;
a=b;
b=z;
}
}
getFibonacci(60000000,10);//[63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976]
您有Javascript知识吗?你试过了吗?是的,我试过了。我对javascript上的整个斐波那契原理都是陌生的,大多数在线教程都假设您需要0,1的序列。我可以实现的。我需要有人告诉我如何从(x)开始看@user3417202:如果你对斐波那契原理不熟悉,那么从你所看到的JavaScript的基本实现开始,直到你理解它的概念,然后尝试更新它们,然后发布,这样我们可以帮你修复它。有人简单地向您发布一个完整的解决方案不会让您更容易理解。我的代码不一样,请注意,(n-1)上有a/n。感谢代码示例。几个问题:如何获得下一个序列<代码>[60000000,*,*,*,*]?我的代码还有一个除法操作数。我在你的代码中看不到这一点。@user3417202的数字太大了,你不能对fibonacci序列使用
JavaScript
problems@user3417202我猜不出你的意思。你们看到演示了吗?如果您只指定n
,您将得到基于数字的布尔值(真/假),如果您也输入了第二个参数,您将得到从0
到n
@user3417202的所有斐波那契数。当然,它会给出false
,因为您只检查数字是否属于斐波那契序列,尽管继续,尝试将数字设置为20000000
,但我看不到您代码中的除法。请注意,这不是常规的斐波那契数列,而是一个修改。我的代码中有一个除法操作数。我如何使用您的a+b示例代码实现这一点?