如何计算给定数字列表的所有组合的总和?

时间:2015-10-03 08:45:39

标签: combinations

假设我有一个数字列表 - A1,A2,A3,A4,A5,....,An。

我如何计算 - (A1*A2)+(A1*A3)+(A1*A4)+(A1*A5)+(A1*A6)+....

Ex-For 1,2,3,我需要计算1*2+2*3+1*3=11

还针对包含超过2个术语的组合推广您的解决方案 三个学期的前言 - (A1*A2*A3)+(A1*A3*A4)+(A1*A4*A5)+(A2*A3*A4)+....

1 个答案:

答案 0 :(得分:0)

import itertools
def sumOfCombinations(l,s):
    return sum(prod(seq) for seq in (itertools.combinations(l, s)))

def prod(l):
    product = 1
    for x in l:
        product*=x
    return product

#exemple
myList = [1,2,3]
size = 2
print(sumOfCombinations(myList,size))

这实际上是在python中完成的。可能有一些更多的pythonic方法来实现这一目标。但结果就在那里。