gpt4 book ai didi

Python 集合运算——集合的补并集

转载 作者:太空狗 更新时间:2023-10-30 02:37:22 24 4
gpt4 key购买 nike

我正在学习离散数学类(class),我正在尝试复制德摩根定律

Complement(B union C) = Complement(B) intersect Complement(C).

我尝试搜索 Python 对集合执行补集的能力,但我没有找到太多(如果有的话)。

所以我只是在 IDLE 中尝试了这个。这看起来正确吗?

U = {'pink', 'purple', 'red', 'blue', 'gray', 'orange', 'green', 'yellow', 'indigo', 'violet'}
A = {'purple', 'red', 'orange', 'yellow', 'violet'}
B = {'blue', 'gray', 'orange', 'green'}
C = {'pink', 'red','blue','violet'}
Comp_B = U - B
Comp_C = U - C
Comp_Union_BC = Comp_B.intersection(Comp_C)
print(Comp_Union_BC)

最佳答案

集合的补集是集合中的所有内容,而是“通用集合”的一部分。没有通用集的定义,您就无法真正给出集的补集的标准库定义。

此外,Python set 类型处理离散对象的集合,而不是可以无限大的数学构造,例如所有自然数。所以 Python 不支持单一通用集的一般、模糊和无限的想法。

对于特定领域,如果您可以用离散术语定义通用集,只需定义您自己的 complement() 可调用对象即可。例如,给定通用集 U 的全局定义,您可以将集合 a 的补集定义为 U 与设置:

U = {'pink', 'purple', 'red', 'blue', 'gray', 'orange', 'green', 'yellow', 'indigo', 'violet'}

def complement(a):
# difference between a global universal set U and the given set a
return U - a

或者,更简单:

complement = U.difference

然后只需将一个集合传递给 complement() 来检验假设:

>>> # set | set == set union, set & set == set intersection
...
>>> complement(B | C) == complement(B) & complement(C)
True

是的,您的解释是正确的,U - B 产生 B 的补码。

关于Python 集合运算——集合的补并集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50358409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com