问题标签 [memoization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 缓存函数导致 PHP
我正在制作一个简单的工具来缓存函数结果
它看起来像:
(函数及其参数只是一个例子)
有什么建议么?
ruby-on-rails - 如何使用 Ruby/Rails 缓存方法?
我需要向另一个 Web 服务发出昂贵(耗时)的外部请求,并且我想缓存它。因此,我尝试通过将以下内容放入应用程序控制器中来使用此习惯用法:
当我调用get_listings!
我的控制器时,一切都很酷,但是当我调用get_listings
Rails 时抱怨没有给出块。当我查看该方法时,我发现它确实需要一个块,而且看起来该方法仅用于视图?所以我猜测虽然没有说明,但该示例只是伪代码。
所以我的问题是,我如何缓存这样的东西?我尝试了各种其他方法,但无法弄清楚。谢谢!
scala - 在 Scala 中使用什么类型来存储内存中的可变数据表?
每次调用函数时,如果尚未记住给定参数值集的结果,我想将结果放入内存表中。一列用于存储结果,其他列用于存储参数值。
我如何最好地实现这一点?参数有多种类型,包括一些枚举。
在 C# 中,我通常使用 DataTable。Scala中是否有等价物?
ruby - 如何在 Ruby 中初始化变量?
以下变量的初始化方式有区别吗?
请分享您初始化变量的方式并说明优缺点。
arrays - 使用 Data.Vector 进行动态编程
我正在使用 Data.Vector,目前需要计算用于计算加密哈希 (Sha1) 的向量的内容。我创建了以下代码。
我创建了这个,以便填充向量的函数 f 可以访问沿途的部分结果。Data.Vector 中肯定已经存在这样的东西,不是吗?
问题陈述如下: 你要解决一个动态规划问题,其中完成的结果是一个数组。您知道数组大小的大小,并且您有一个递归函数来填充它。
memoization - “记忆”一词是什么意思?
比较“memoize”和“cache”这两个词,并在阅读维基百科的 memoization 条目时,人们是否同意使用“memoize”这个词意味着
- 记忆的结果保存在进程的内存中;换句话说,它不存储在memcached中。
- 一个只有“记忆”函数,如在数学函数中,例如斐波那契,而不是可能随时间变化的值,例如网站上注册用户的数量?
如果您正在做上述以外的任何事情,那么您只是在缓存一个结果?
f# - 在 F# 中记忆尾调用优化的递归函数
可能的重复:
结合记忆和尾递归
所以下面是我写的代码,使用累积变量优化的尾调用
我如何记住这个?当我尝试记忆时遇到的问题是递归调用必须转到记忆对象,所以你必须有一个......递归对象?
还是它更简单,我只是缺乏经验?
dynamic-programming - 矩阵中的连续 All-one 块
假设给定一个 mXn 位图,由数组 M[1..m,1..n] 表示,其条目全为 0 或 1。全为 1 的块是 M[i .. i0, 形式的子数组, j .. j0],其中每个比特都等于 1。描述和分析一种有效的算法,以在 M 中找到最大面积的全一块
我正在尝试制作一个动态编程解决方案。但是我的递归算法在 O(n^n) 时间内运行,即使在记忆化之后,我也无法将其降低到 O(n^4) 以下。有人可以帮我找到更有效的解决方案吗?