2013-05-03 64 views
2

需要我讀這篇文章什麼是記憶化的蟒蛇

http://programmingzen.com/2009/05/18/memoization-in-ruby-and-python/

其實任何人都可以請個例子來說,如果我不使用它會發生什麼。我無法找到它解決了哪個問題。我只想知道兩個例子,在一個簡單的例子中沒有memoization和其他memoization,以便我可以看到爲什麼我們使用它。

如果示例可以基於web realted或Django,那將會很好,這樣我可以更好地理解它。我在算法中不是太狡猾

+0

如果您有一個函數,給定一組參數將始終返回相同的值,那麼您可以「記住」結果,如果您已經計算出來,以便以後不必再計算結果if該功能需要很長時間才能完成計算。當然,你通常只想記住一定數量的答案(在你的記憶限制內)。 – mgilson 2013-05-03 01:52:16

+0

@mgilson函數如何返回相同的結果。任何例子?如果每個參數的結果都一樣,那麼爲什麼我不能把它放在一個變量中,而不是函數 – user2330497 2013-05-03 01:58:00

+0

,例如:'def square(x):return x * x' - 給定一個特定的x值,它會總是返回相同的東西。這是一個微不足道的功能。想象一些更復雜的事情,需要很多步驟才能完成。 – mgilson 2013-05-03 02:00:08

回答

3

解釋簡單,我會把這個問題。在這個文本塊中有多少個「E」字符?

現在,在第一個文本塊中有多少個「E」字符?

現在,第一個文本塊中有多少個「E」字符?

最後,第一個文本塊中有多少個「E」字符?

如果您想知道,在第一個區塊中有9個「e」和2個「E」。通過第二次運行,您可能已經記住了第一個區塊中有多少「E」。這是一個count功能/方法的記憶,通過該塊阻止文本。

2

記憶緩存(存儲)函數最近使用的結果,以便稍後可以快速檢索它們。基本上,如果你的功能很慢,但在大多數情況下都有相同的結果,它可能會有所幫助。

+0

我們如何知道應該在緩存中存儲多少項 – user2330497 2013-05-03 02:20:40