gpt4 book ai didi

python - 递归函数值生成器的多重处理

转载 作者:行者123 更新时间:2023-12-02 20:32:21 26 4
gpt4 key购买 nike

我有一个简单的递归函数及其值生成器:

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,...]

在这样的构造中可以使用多处理吗?

最佳答案

您在这里描述的是干净 map :将一个可迭代的值映射到一个值列表,使得原始列表中的 xi 映射到 f(xi) 在结果中。

我们可以将它与一起使用:

from multiprocessing import Pool

def rec(n):
if n == 1:
return 1
else:
return n + rec(n-1)

pool = Pool(4)

lis = pool.map(rec, range(1,1000))

这里4是处理请求的进程数。通常这是核心数(或核心数的倍数)。

但请注意,在您的情况下,您可以将 rec 函数替换为:

# fast implementation
def rec(n):
return n*(n+1)//2

关于python - 递归函数值生成器的多重处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48290519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com