这是一个简单的问题,一直困扰着我一段时间。
我正在尝试将我的代码重写为并行,在此过程中,我需要拆分一个总和以在多个节点上完成,然后将这些小总和相加。我正在使用的作品是这样的:
def pia(n, i):
k = 0
lsum = 0
while k < n:
p = (n-k)
ld = (8.0*k+i)
ln = pow(16.0, p, ld)
lsum += (ln/ld)
k += 1
return lsum
其中n
是极限,i
是整数。有没有人有一些关于如何拆分并最终得到相同结果的提示?
编辑:对于那些询问的人,我没有使用pow()
自定义版本,而是使用浮点有效地做到这一点:
def ssp(b, n, m):
ssp = 1
while n>0:
if n % 2 == 1:
ssp = (b*ssp) % m
b = (b**2) % m
n = n // 2
return ssp