2013-05-03 66 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