Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要求解集合元素并集的一般方程来计算python中集合的概率_Python_List_Set_Union_Probability - Fatal编程技术网

我需要求解集合元素并集的一般方程来计算python中集合的概率

我需要求解集合元素并集的一般方程来计算python中集合的概率,python,list,set,union,probability,Python,List,Set,Union,Probability,数学语言: 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.compositions生成大小为2..N的所有组合,然后对于每个组合,您可以使用

数学语言:

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.compositions
生成大小为2..N的所有组合,然后对于每个组合,您可以使用
functools.reduce使用
操作符.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))
-23

请提供您尝试过的代码。谢谢!你有很多经验,你可以分享!