ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で簡単なメモ化関数コードを記述するにはどうすればよいですか?
メモリは、機能のパフォーマンスを向上させる最適化テクノロジです。暗記テクニックを始める前に、次の例を使用して、なぜそれが必要なのかを理解しましょう。
以下の例では、n 番目のフィボナッチ数を見つける簡単なメソッドを実装します。再帰的方法を使用して n 番目のフィボナッチ数を見つけます。
リーリー上記の例は、1000 未満の小さな入力値ではうまく機能しますが、範囲 104 の入力値を入力すると、通常より時間がかかり、範囲 10 の場合は通常よりも時間がかかります。 6 を入力すると、メモリの限界外のためブラウザがクラッシュしました。
メモリ テクノロジを使用して上記のコードを最適化すると、以前の計算結果を保存できます。たとえば、4 番目のフィボナッチ数を見つけるには、3 番目と 2 番目のフィボナッチ数を見つける必要があります。同様に、3 番目のフィボナッチ数を見つけるには、2 番目と最初のフィボナッチ数を見つける必要があります。したがって、ここでは 2 番目のフィボナッチ数を 2 回計算します。
ここで、フィボナッチ数列の n 番目に大きい値を見つけたいと仮定すると、それを何回繰り返す必要があるかを考えることができます。したがって、最適化の目的で、2 番目のフィボナッチ数を初めて計算し、それを一時変数に保存できます。後で 2 番目のフィボナッチ数を再度計算する必要がある場合、配列からアクセスできるため、コードがより効率的になります。
さらに、以前に計算した結果を後で使用できるように配列に保存することもメモ化です。
###文法###上記の構文では、まず n 番目のフィボナッチ数が 'temp' オブジェクトに既に存在するかどうかを確認し、次に値を返します。存在しない場合は、その値を計算し、鉱石を一時オブジェクトに追加します。
###方法### ステップ 1ステップ 2 – n が 1 以下の場合、再帰関数の基本ケースとして 1 を返します。
ステップ 3 – n-1 および n-2 フィボナッチ数を計算し、それらを加算し、後で使用できるように一時オブジェクトに保存します。
ステップ 4 – n 番目のフィボナッチ数を保存し、一時オブジェクトに返します。
例 (メモリを使用して n 番目のフィボナッチ数を見つける) メモ化手法を使用して、以下の例の最初の例のコードを最適化しました。 temp オブジェクトを使用して、以前の計算の結果を保存します。出力では、以下のコードが最初の例のコードよりも効率的であることがわかります。
リーリーステップ 2 – for ループを n 回繰り返し使用して、n 番目のフィボナッチ数を見つけます。
ステップ 3 – ここで、c は (i-1) 番目のフィボナッチ数を格納する一時変数です。
ステップ 4 – b 変数の値を a に保存します。
ステップ 5 – 変数 c の値を変数 b に保存します。
###例###次の例も、最初の例の最適化された変形です。 2 番目の例では、一時オブジェクトを使用して前の計算の結果を保存しましたが、以下のコードでは、c という名前の単一の一時変数を使用しています。 以下のコードは、時間計算量が O(n)、空間計算量が O(1) であるため、フィボナッチ数列を見つける最も効率的な方法です。
リーリー以上がJavaScript で簡単なメモ化関数コードを記述するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。