Math 如何为两个圆的维恩图的并集、交集和乘积编写伪代码?

Math 如何为两个圆的维恩图的并集、交集和乘积编写伪代码?,math,set,pseudocode,discrete-mathematics,Math,Set,Pseudocode,Discrete Mathematics,假设我们有两个圆的维恩图。我们必须找到它们的并集、交集和乘积。例如,我们有两套: A=[a,b,f,g] B=[b,e,f,h] 联合 交叉口 A∩B = [f,g] 产品 A*B=[ab, ae, af, ah, bb, be, bf, bh, fb, fe, ff, fh, gb, ge, gf, gh] 我的问题是,我们如何用伪代码编写这些操作?我不知道怎么做。A工会B: C := empty set for each a in A: C.add(a) for each b

假设我们有两个圆的维恩图。我们必须找到它们的并集、交集和乘积。例如,我们有两套:

A=[a,b,f,g]
B=[b,e,f,h]
联合

交叉口

A∩B = [f,g]
产品

A*B=[ab, ae, af, ah, bb, be, bf, bh, fb, fe, ff, fh, gb, ge, gf, gh]
我的问题是,我们如何用伪代码编写这些操作?我不知道怎么做。

A工会B:

C := empty set
for each a in A:
    C.add(a)
for each b in B:
    if not C.contains(b) then C.add(b)
如果使用列表/数组实现,则具有二次运行时。如果使用哈希表/字典,则具有线性运行时

A和B:

C := empty set
for each a in A:
    if B.contains(a) then C.add(a)
和工会一样的表现

A x B:

C := empty set
for each a in A:
    for each b in B:
        C.add((a,b))

这有二次运行时,但这是不可避免的,因为返回的结果包含n^2个元素的顺序。

您能更清楚地说明您想要什么吗?对我来说,表达式
A∩对于
A
B
的交集,B
是非常好的伪代码。我被赋予了编写伪代码的任务,以实现给定隐式函数A和B的和、积和差(以上述形式)。如果我理解正确,上面的数学运算可以被认为是伪代码。非常感谢你的帮助。
C := empty set
for each a in A:
    for each b in B:
        C.add((a,b))