自定义/修改'Fibonacci'数字序列

时间:2014-03-13 20:04:58

标签: javascript arrays fibonacci

我需要产生一个更加不同的Fibonacci序列实现。这是实现

(FSM) - FSM(0) = 0,
FSM(1) = 1, 
FSM(n) = FSM(n - 2) + FSM(n - 1) / n

如何在javascript中实现此目的?我应该输入一个大的int 60000000并获得序列中的下10个数字。

请注意,等式(n-1)部分有一个/ 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元素&#34开始,获得10个改进的Fibonacci数字;

如果我通过斐波那契(60000000);这会崩溃。

1 个答案:

答案 0 :(得分:1)

<强>更新

尝试以下一项。 参数: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]

DEMO