我正在使用Python和
我给了一个类似a = [1, 2, 3, 4]
的数组
我想找到所有可能的组合乘法的总和,如:
对于1:1 + 2 + 3 + 4
对于2:1*2 + 2*3 + 3*4 + 4*1
的组合。
组合3:1*2*3 + 1*3*4 + 2*3*4
对于4的组合:1*2*3*4
最后总结所有这些总和是我的答案。我正在使用numpy.prod()
和numpy.sum()
。但它仍然太慢。是否有更好的算法可以快速找到总和?
答案 0 :(得分:1)
您可以使用numpy
和itertools
:
from numpy import linspace, prod
from itertools import combinations
arr = np.array([1,2,3,4])
[sum([prod(x) for x in combinations(arr,int(i))]) for i in linspace(1,len(arr), len(arr))]
[10, 35, 50, 24]