Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定制/修改';斐波那契&x27;数列_Javascript_Arrays_Fibonacci - Fatal编程技术网

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示例代码实现这一点?