如何在Python中获取数组中所有组合的产品总和?

时间:2015-10-02 13:39:16

标签: python arrays numpy sum product

我正在使用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()。但它仍然太慢。是否有更好的算法可以快速找到总和?

1 个答案:

答案 0 :(得分:1)

您可以使用numpyitertools

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]