Maison > Questions et réponses > le corps du texte
P粉0989790482023-08-17 16:52:41
Il existe une formule fermée pour calculer le nième nombre de Fibonacci, connue sous le nom de formule Binet. Cela vous permet d'obtenir le nième nombre dans la complexité temporelle asymptotique de O(1)
.
Voici un exemple montrant comment calculer le nombre de Fibonacci pour n'importe quel n
.
Étendez ceci pour résoudre votre problème spécifique. Je suggère de calculer les valeurs de n-1
et n-1
和n
. Ensuite, répétez k fois pour obtenir la valeur souhaitée. Gardez une trace des résultats au fur et à mesure que vous itérez et tout devrait bien se passer.
function fibonacci(n) { const phi = (1 + Math.sqrt(5)) / 2; const psi = (1 - Math.sqrt(5)) / 2; // phi的负倒数 return Math.round((Math.pow(phi, n) - Math.pow(psi, n)) / Math.sqrt(5)); } // 测试 console.log(fibonacci(10)); // 输出:55
Remarque : Bien que cette formule donne des résultats précis pour des valeurs n
plus petites, la précision peut être perdue pour des valeurs plus grandes en raison des limitations des opérations à virgule flottante en JavaScript.