【发布时间】:2018-06-25 17:00:55
【问题描述】:
我有一个简单的递归函数和它的值生成器:
def rec(n):
if n == 1:
return 1
else:
return n + rec(n-1)
lis=[]
for i in range(1,1000):
lis.append(rec(i))
输出:
[1, 3, 6, 10, 15, 21, 28, 36,...]
在这样的构造中可以使用多处理吗?
【问题讨论】:
-
你使用这样的递归函数有什么原因吗?
-
不完全一样,但类似于它更复杂的问题,因为可能解释复杂,这里不需要。
-
与其从
n降到1,不如从1降到n,一路顺势而为?你的例子可以用itertools.accumulate -
在考虑多处理之前,我会尝试编写一个更高效的算法。这个问题及其同类问题可能有一个封闭形式的解决方案或使用dynamic programming 有效解决
标签: python recursion multiprocessing generator