2017-07-06 5 views
0

J'essaie de compter Mortal Fibonacci Rabbits. La tâche suppose que les lapins meurent après un nombre fixe de mois.Mortel Fibonacci Lapins -erreur à des valeurs supérieures à 6

L'image montre comment le nombre de lapins change au fil du temps Rabbits

La séquence de Fibonacci pour lapins Mortal ressemble à ceci:

{1,1,2,2,3,4,5,7 , 9,12,16,21,28 (...)}

Mon code est simple - malheureusement seul compte jusqu'à 6 (inclus).

function rabbits(n){ 

if (n<=2){ 
    return 1 
} 
else if (n===3 || n===4){ 
    return 2 
} 
else { 
    f1 = 1 
    f2 = 1 
    f3 = 2 
    f4 = 2 
     for (i = 5; i <= n; i++) { 
      f = f2 + f3 
      f3 = f2 
      f2 = f 
     } 
     return f 
    } 
} 



console.log(rabbits(1)) // 1 
console.log(rabbits(2)) //1 
console.log(rabbits(3)) // 2 
console.log(rabbits(4)) //2 
console.log(rabbits(5)) //3 
console.log(rabbits(6)) //4 
console.log(rabbits(7)) //7 
console.log(rabbits(8)) //11 
console.log(rabbits(9)) //18 
console.log(rabbits(10)) //29 

De 7 vers le haut - au lieu de F (n-2) + F (n-3) -. Chiffres F (n-1) + (F (n-2)

Je ne Je ne fais que commencer une aventure avec JS et j'ai peur que le code compliqué que je ne peux pas comprendre (quoi et pourquoi) - alors je demande des conseils/de l'aide pour modifier l'existant pour que le débutant comprenne

EDIT //

Bon, problème résolu. Ceci est un code de travail:

var Fib=[] 

for(i=1;i<=n;i++){ 

if(i===1||i===2){ 

    Fib.push(1) 
} 

else if(i===3|| i===4){ 

    Fib.push(2) 
} 

else{ 

    fib=Fib[Fib.length-2]+Fib[Fib.length-3] 
    Fib.push(fib) 
} 

} 

console.log(Fib) 
+0

f = f2 + f3; f3 = f2; f2 = f; Je ne vois pas 4 variables (* n * à * n-3 *) –

+0

Je n'ai aucune idée d'où une variable supplémentaire devrait être écrite. Pourriez-vous améliorer cette partie? – blueberry

Répondre

0

Je ne suis pas sûr du droit forumla pour obtenir « les nombres de Fibonacci », je que l'un de Wikipedia.

Quoi qu'il en soit, je pense que vous pouvez utiliser un tableau afin d'obtenir la valeur précédente, voir ci-dessous s'il vous plaît:

function rabbits(n){ 
 
    let fib = []; 
 
    for(let i=1; i<=15; i++){ 
 
    fib.push(i+i-1); 
 
    } 
 
    return fib[n-1]; 
 
} 
 

 
for(let i=1; i<=10; i++){ 
 
    console.log("rabbits("+ i + ") = ", rabbits(i)); 
 
}
<span>From Wikipedia:</span> 
 
<cite> 
 
In mathematics, the Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and characterized by the fact that every number after the first two is the sum of the two preceding ones. 
 
</cite>