我刚开始使用 Python,我不知道什么是 记忆化 以及如何使用它。另外,我可以举一个简化的例子吗?
原文由 blur959 发布,翻译遵循 CC BY-SA 4.0 许可协议
我刚开始使用 Python,我不知道什么是 记忆化 以及如何使用它。另外,我可以举一个简化的例子吗?
原文由 blur959 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答915 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
记忆化实际上是指根据方法输入记住(“记忆化”→“备忘录”→被记忆)方法调用的结果,然后返回记忆的结果而不是再次计算结果。您可以将其视为方法结果的缓存。有关更多详细信息,请参阅第 387 页,了解 算法简介(3e) 中的定义,Cormen 等人。
在 Python 中使用记忆化计算阶乘的一个简单示例如下所示:
你可以变得更复杂并将记忆化过程封装到一个类中:
然后:
Python 2.4 中添加了一个称为“ decorators ”的功能,它允许您现在只需编写以下内容即可完成同样的事情:
Python 装饰器库 有一个名为
memoized
的类似装饰器,它比这里显示的Memoize
类稍微更健壮。