我很难理解如何使用Python的多处理模块.
我有一个和1
到n
哪里n=10^10
,这是太大,无法进入名单,这似乎是在网上使用多很多例子推力.
有没有办法将范围"拆分"为一定大小的段,然后为每个段执行求和?
例如
def sum_nums(low,high):
result = 0
for i in range(low,high+1):
result += i
return result
Run Code Online (Sandbox Code Playgroud)
而且我想sum_nums(1,10**10)
通过将其分解成许多来计算sum_nums(1,1000) + sum_nums(1001,2000) + sum_nums(2001,3000)...
,等等.我知道有一个封闭形式,n(n+1)/2
但假装我们不知道.
这是我尝试过的
import multiprocessing
def sum_nums(low,high):
result = 0
for i in range(low,high+1):
result += i
return result
if __name__ == "__main__":
n = 1000
procs = 2
sizeSegment = n/procs
jobs = []
for i in range(0, procs):
process = multiprocessing.Process(target=sum_nums, args=(i*sizeSegment+1, (i+1)*sizeSegment))
jobs.append(process)
for …
Run Code Online (Sandbox Code Playgroud)