问题描述
在数学语言中:
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[0]|a[1]|a[2])
我需要通用解决方案!
解决方法
如果我遵循您的模式,您可以使用 itertools.combinations
生成大小为 2..N 的所有组合,然后对于每个组合,您可以使用 functools.reduce
和 {{1} } 手术。然后在 operator.mul
内否定这些值。
sum