memoization相关内容

纪念硬币找零

我想将找零功能转换为记忆功能 为此,我决定使用字典,以便字典中的键将是硬币,而值将是包含所有可以更改“键"硬币的硬币的列表. 我所做的是: def change(a,kinds=(50,20,10,5,1)): if(a==0): return 1 if(a ..
发布时间:2020-05-08 18:51:05 Python

在Python中缓存类属性

我正在用python写一个类,并且我有一个属性,该属性将花费相对较长的时间来计算,所以我只想做一次.此外,该类的每个实例都不需要使用它,因此我不想在__init__中默认使用. 我是Python的新手,但不熟悉编程.我可以想出一种很容易做到这一点的方法,但是我一遍又一遍地发现,"Pythonic"做事的方法通常比我在其他语言中的经验要简单得多. > 在Python中是否有“正确"的方法来实 ..
发布时间:2020-05-08 18:51:03 Python

Python会实习生字符串吗?

在Java中,显式声明的字符串由JVM进行插值,因此对同一字符串的后续声明将导致指向同一String实例的两个指针,而不是两个单独的(但相同的)字符串. 例如: public String baz() { String a = "astring"; return a; } public String bar() { String b = "astring" ..
发布时间:2020-05-08 18:50:53 Python

Numpy Pure Function用于性能,缓存

我正在用numpy编写一些性能中等的代码. 此代码将在计算的最内层循环中,运行时间以小时为单位. 快速计算表明,在计算的某些变化中,该代码将被执行大约10 ^ 12次. 因此,函数是计算sigmoid(X),另一个函数是计算其导数(梯度). Sigmoid具有以下属性:对于 y = sigmoid(x),dy/dx = y(1-y) 在numpy的python中,这看起来像: si ..
发布时间:2020-05-08 18:50:50 Python

python 2.7的备忘录库

我看到python 3.2在functools库中作为装饰器具有记忆. http://docs.python.org/py3k/library/functools.html #functools.lru_cache 很遗憾,它尚未回迁到2.7.有什么特定的原因可以解释为什么它在2.7中不可用?是否有任何第三方库提供相同的功能,或者我应该编写自己的库? 解决方案 有什么特殊的原因为 ..
发布时间:2020-05-08 18:50:47 Python

记忆和动态编程之间有什么区别?

记忆化和动态编程之间有什么区别?我认为动态编程是记忆的一个子集.是吗? 解决方案 与Programming.Guide有关的文章: 记忆和动态编程之间有什么区别? 记忆化是一个描述优化技术的术语,您可以在其中缓存先前计算的结果,并在再次需要相同的计算时返回缓存的结果. 动态编程是一种迭代解决递归性质问题的技术,适用于子问题的计算重叠的情况. 动态编程通常 使用列表来 ..

自下而上和自上而下有什么区别?

自底向上方法(用于动态编程)在于首先查看“较小"的子问题,然后使用较小问题的解决方案来解决较大的子问题. 自上而下在于以一种“自然的方式"解决问题,并检查您之前是否已经计算过该子问题的解决方案. 我有点困惑.两者有什么区别? 解决方案 rev4:用户Sammaron的一个非常有说服力的评论指出,也许这个答案以前使自上而下和自下而上混淆.虽然最初这个答案(rev3)和其他答案 ..
发布时间:2020-05-08 18:50:40 其他开发

什么是备忘录,如何在Python中使用备忘录?

我刚开始使用Python,不知道记忆化是什么以及如何使用它.另外,我可以举一个简化的例子吗? 解决方案 记忆有效地指基于方法输入记住方法调用的结果(“记忆"→“备忘录"→要记忆),然后返回记忆的结果而不是再次计算结果.您可以将其视为方法结果的缓存.有关更多详细信息,请参阅第387页的Cormen等人的 算法简介 (3e)中的定义. 一个简单的示例,该示例使用Python中的记忆来计算阶乘 ..
发布时间:2020-05-08 18:50:33 Python

Numpy NdArray记忆化

我正在处理一些相当计算密集的计算,用于处理numpy矩阵和ndarray,并且从一些挖掘中,大约有十二种方法不来实现记忆,通常充满冲突,以及ndarrays是可变对象的问题. 有人遇到过可以处理numpy对象的相当通用的备注装饰器吗? 解决方案 该软件包如何: http://packages.python.org/joblib/memory.html ..
发布时间:2020-05-07 18:46:46 Python

Matlab中预先计算函数的缓存结果

我有两个数组,x和y. x是函数的输入,而y是函数的值. 例如,x = [ 1 2 3 4 5 6 7 8 9 10],y = [ 3 6 2 4 1 6 7 0 1 8 ].两者的长度相同. 假设我有另一个包含[ 2 3 8 9 10 3]的数组z(长度与x和y不同), 是否有任何函数可以产生输出[6 2 0 1 8 2](相应索引处的返回值),而无需在数组的每个元素之间使用for循环? ..
发布时间:2020-05-06 12:56:51 其他开发

设计内存有限的记忆系统的简单方法是什么?

我正在编写一个手动计算记忆系统(嗯,在Matlab中).简单的部分很容易: 一种在执行计算之后将数据放入备忘录系统的方法. 一种从备忘录中查询和获取数据的方法. 一种查询系统中所有“键"的方法. 这些部分并没有太大的疑问.问题是我的计算机内存有限,因此有时"put"操作必须将某些对象转储出内存.我担心“高速缓存未命中",因此我希望使用一些相对简单的系统来删除那些不经常使用和/或重新 ..
发布时间:2020-05-06 12:49:02 其他开发

单词解析器脚本和实现备忘录

说明 给一个字典,我的程序生成两个输出文件,"sequences.txt"和"words.txt". “序列"包含四个字母(A-z)的每个序列,这些序列恰好出现在字典的一个单词中,每行一个序列. “单词"将包含相应的单词,这些单词包含相同顺序的序列,每行又一个. 例如,给定的spec/fixtures/sample_words.txt字典仅包含 arrows carrot ..
发布时间:2020-05-05 14:39:11 其他开发

如何保留Prolog中函数的第一个结果?

我需要编写一个自定义函数,该函数将被其他固定函数多次调用.在此函数中,在第一次调用时,它将返回文件的总行数.此函数的第二个调用时间,正向,将返回此文件小部分中的行数.我的问题是如何保留第一个返回的结果(文件的总行数)并将其用于函数的下一个调用时间.我只需要在此函数中编写或声明任何内容(而不在调用方中).像这样: myFunction(Input, MyResult, FirstResult) ..
发布时间:2020-05-03 08:55:22 其他开发

程序解释期间的高效增量哈希计算

我想写一个递归式Scheme解释器.在评估过程中的任何时候,解释器都应该能够检测到它何时收到了以前见过的一对表达式和环境作为参数. eval和apply的简单记忆是无效的.每次调用eval/apply时,都需要在哈希表中查找参数,这将需要遍历哈希表匹配项中的整个参数(可能很大). 例如,假设解释器评估程序 (car (list A)) 其中,A表示一个大对象.解释器评估应用程 ..
发布时间:2020-05-02 04:33:55 其他开发

如何在Lisp中记住递归函数?

我是Lisp初学者.我正在尝试记住一个递归函数,用于计算 Collat​​z序列(对于 Project Euler 中的问题14.).到目前为止,我的代码是: (defun collatz-steps (n) (if (= 1 n) 0 (if (evenp n) (1+ (collatz-steps (/ n 2))) (1+ ..
发布时间:2020-05-02 04:16:54 其他开发