在数学语言中:
list=[1,3,4]
Solve=1+3+4-1*3-1*4-3*4-1*3*4一般职能:
A1∪A2∪..∪An= A1+A2+..+An-A1*A2-A1...-A1*A2*...*An我需要为列表中的任意数量的对象创建一个函数来解决这个问题。
缓慢的方式:
a=2,2,1
B=(a_1-A1_a_(2))
我需要一般的解决办法!
发布于 2021-03-03 15:53:37
如果我遵循您的模式,您可以使用itertools.combinations生成大小为2.N的所有组合,然后对于每个组合,您可以使用functools.reduce与operator.mul操作多个元组。然后在sum中否定这些值。
>>> from itertools import combinations
>>> from functools import reduce
>>> from operator import mul
>>> data = [1,3,4]
>>> sum(data) + sum(sum(-reduce(mul, i) for i in combinations(data, n)) for n in range(2, len(data)+1))
-23https://stackoverflow.com/questions/66460358
复制相似问题