2024-04-20 13:42:51 发布
网友
对于那些不熟悉的人,包含-排除原则规定了一种方法,可以在不重复计算的情况下确定相交集的并集的并集的值。简而言之,如果你有两个集合A,B,它们相交,可以通过将两个集合的值相加,然后减去它们的交集来计算它们的并集值,以避免重复计算。在
换句话说
$/mu(A /union B) = /mu(A) + /mu(B) - /mu(A /intersection B)$.
这可以扩展到任何有限个集合,甚至无限个集合。如何在Python中构造一个利用这一原理的递归函数呢?在
一般来说,你不会用派。如果你想要工会的规模,就拿工会来说:
def union_size(sets): return len(set.union(*sets))
PIE在组合数学中更有用,你可能有一组2百万个元素,一组3个百万元素,还有一种方法可以告诉你它们的交集包含1百万个元素,而不需要逐个遍历所有元素。但是,在编程中,您不能使用对集合进行编码的紧凑表达式。你的记忆里有五百万个元素。要想让两组元素相交,就需要检查每一个元素是否在另一组元素中。馅饼没有好处。在
如果您想使用它,最简单的方法是使用itertools:
itertools
只需使用集合。在
AuB = set(A).union(B) len(AuB)
你也可以使用集合交集如果你想要一个。在
(我假设A和B在最后一行没有重复项)
一般来说,你不会用派。如果你想要工会的规模,就拿工会来说:
PIE在组合数学中更有用,你可能有一组2百万个元素,一组3个百万元素,还有一种方法可以告诉你它们的交集包含1百万个元素,而不需要逐个遍历所有元素。但是,在编程中,您不能使用对集合进行编码的紧凑表达式。你的记忆里有五百万个元素。要想让两组元素相交,就需要检查每一个元素是否在另一组元素中。馅饼没有好处。在
如果您想使用它,最简单的方法是使用
^{pr2}$itertools
:只需使用集合。在
你也可以使用集合交集如果你想要一个。在
^{pr2}$(我假设A和B在最后一行没有重复项)
相关问题 更多 >
编程相关推荐