タグ付けされた質問 「memoization」




8
ボトムアップとトップダウンの違いは何ですか?
ボトムアップ(動的プログラミング)のアプローチは、「小さい」部分問題を見て最初に構成され、そしてより小さい問題に対する解決策を使用して、より大きな部分問題を解決します。 トップダウンはあなたが前部分問題の解を計算している場合は、「自然な形」とチェックで問題を解決することにあります。 私は少し混乱しています。これら2つの違いは何ですか?

16
関数の戻り値を単にキャッシュするデコレーターはありますか?
以下を検討してください。 @property def name(self): if not hasattr(self, '_name'): # expensive calculation self._name = 1 + 1 return self._name 私は新しいですが、キャッシュはデコレータに組み入れることができると思います。私だけがそのようなものを見つけられませんでした;) PS実際の計算は可変値に依存しません

8
Haskellでのメモ化?
Haskellで次の関数を効率的に解決する方法に関する任意のポインタ(多数の場合) (n > 108) f(n) = max(n, f(n/2) + f(n/3) + f(n/4)) Haskellでフィボナッチ数を解決するためのメモ化の例を見てきました。これには、必要なnまでのすべてのフィボナッチ数を(遅延的に)計算することが含まれます。しかし、この場合、与えられたnに対して、必要な中間結果はごくわずかです。 ありがとう

4
このフィボナッチ関数はどのように記憶されていますか?
このフィボナッチ関数はどのようなメカニズムで記憶されていますか? fib = (map fib' [0..] !!) where fib' 1 = 1 fib' 2 = 1 fib' n = fib (n-2) + fib (n-1) そして、関連するノートで、なぜこのバージョンはそうではないのですか? fib n = (map fib' [0..] !! n) where fib' 1 = 1 fib' 2 = 1 fib' n = fib (n-2) + fib (n-1)

5
キャッシングとメモ化の違いは何ですか?
私は、実際のものとの違いの間知っていただきたいと思いますcachingし、memoizationです。 私が見ているように、どちらも、データを格納することによってデータを取得するために繰り返される関数呼び出しを回避することを含みます。 2つの主な違いは何ですか?

4
GHC Haskellのメモ化はいつ自動化されますか?
m2が以下に含まれていないのにm1が明らかにメモ化されている理由がわかりません。 m1 = ((filter odd [1..]) !!) m2 n = ((filter odd [1..]) !! n) m1 10000000は最初の呼び出しで約1.5秒かかり、その後の呼び出しではその数分の1(おそらくリストをキャッシュする)ですが、m2 10000000では常に同じ時間がかかります(呼び出しごとにリストを再構築します)。何が起こっているのでしょうか?GHCが関数をメモするかどうか、いつメモするかについての経験則はありますか?ありがとう。
106 haskell  ghc  memoization 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.