ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript はメモリ関数を使用して再帰関数をすばやく計算します_JavaScript スキル

JavaScript はメモリ関数を使用して再帰関数をすばやく計算します_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:32:301249ブラウズ

計算するフィボナッチ数列がある場合:

コードをコピーします コードは次のとおりです:

var fibonacci = function (n) {
return n < 2 ? n : fibonacci(n - 1) fibonacci(n - 2);数値が大きいと、関数の操作中に何度も計算が繰り返されるため、ブラウザがクラッシュするのではないかと心配しています。しかし、JavaScript の強力な配列と関数クロージャを使用すると、計算結果を簡単に記憶できます。計算速度は飛躍的に向上します。

小さくても強力なメモリ機能:




コードをコピー
コードは次のとおりです: var memoizer = function (メモ、基本) { var shell = function (n) {
var result = memo[n]
if (typeof result !== 'number') {
結果 = 基本(シェル, n);
結果を返します
}; >

最初のパラメータは初期メモリ シーケンス、2 番目のパラメータは基本関数です。使い方はさらに簡単です:




コードをコピー

コードは次のとおりです:

var fibonacci = memoizer( [0, 1], function (shell, n) { return shell(n - 1) shell(n - 2); }); 同様に、次の場合は階乗数列を計算します:
コードをコピー


コードは次のとおりです:

var fastial = memoizer([1, 1], function (shell, n) {
return n *shell(n - 1);
});
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。