Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

集合基本概念

集合的表示法

  1. 列举法
  2. 特征法

子集

定理1.1:集合A和集合B相等的充要条件是:A⊆B⋀B⊆AA \subseteq B \bigwedge B \subseteq A

空集$ \emptyset $是任何集合的子集

全集和补集

补集:设集合A,属于全集E,对于任意元素x

  1. x∈Ex \in E
  2. x∉Ax \notin A

则有x促成的集合称为A的补集合,记为:~A或Aˉ\bar{A}

幂集

幂集:设A是集合,有A的所有子集作为元素构成的集合称为A的幂集,记为P(A)

定理1.2:设A是具有n个元素的有限集,即|A| = n ,其幂集的基∣P(A)∣=2n|P(A)| = 2^n

定理1.1.2 证明

证明:根据排列组合规律,幂集的基为:∣P(A)∣=Cn0+Cn1+Cn2+...+Cnn证明: 根据排列组合规律,幂集的基为:|P(A)| = C_n^0+C_n^1+C_n^2+...+C_n^n

由二项式定理得:(a+b)n=Cn0×an+Cn1×a(n−1)×b1+...+Cnn−1×a1×bn−1+Cnn×bn由二项式定理得:(a+b)^n = C_n^0 \times a^n + C_n^1 \times a^{(n-1)} \times b^1 + ... + C_n^{n-1} \times a^1 \times b^{n-1} + C_n^n \times b^n

令a=b=1,得:2n=Cn0+Cn1+Cn2+...+Cnn令a=b=1,得:2^n = C_n^0+C_n^1+C_n^2+...+C_n^n

∴∣P(A)∣=2n\therefore |P(A)| = 2^n

由此我们可以知道,一个集合A的所有子集的个数,一定是2的幂次,那么如何遍历一个集合的所有子集呢?

子集的遍历(生成幂集)

遍历一个集合的子集,也就是要生成该集合对应的幂集,由于幂集的元素个数总为2的次方,而对于集合中的每一个元素,讨论他是否在某个子集中时,他只有两种状态,在于不在,于是可以用0,1两种表示,则我们可以用n位二进制来表示幂集中的所有元素,而由定理1.1.2的证明我们可以知道n位二进制数是足够的,下面我们来实现一下:

查看代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void BinarySearch(set<int> &mySet)
{
int length = mySet.size();
int n = 1 << length;
for (int i = 0; i < n; i++)//外层循环遍历序号
{
for (int j = 0; j < n; j++)//内层循环遍历该序号二进制表示的每一位
{
if (i & (1 << j))//判断当前位是否为1
{
cout << j << " ";
}
}
cout << endl;
}
}

集合基本运算

交和并

  1. A∩B=B∩AA \cap B = B \cap A,A∪B=B∪AA \cup B = B \cup A
  2. (A∩B)∩C=A∩(B∩C)(A \cap B) \cap C = A \cap (B \cap C),(A∪B)∪C=A∪(B∪C)(A \cup B) \cup C = A \cup (B \cup C)——结合律
  3. A∩A=AA \cap A = A,A∪A=AA \cup A = A
  4. A∩∅=∅A \cap \emptyset = \emptyset,A∪∅=AA \cup \emptyset = A
  5. A∩E=AA \cap E = A,A∪E=EA \cup E = E

分配律

定理1.3:A∩(B∪C)=(A∩B)∪(A∩C)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)

定理1.3:A∪(B∩C)=(A∪B)∩(A∪C)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)

德·摩根率

定理1.4:A∪Bˉ=Aˉ∩Bˉ\bar{ A \cup B } = \bar{A} \cap \bar{B}

定理1.4:A∩Bˉ=Aˉ∪Bˉ\bar{ A \cap B } = \bar{A} \cup \bar{B}

证明
点击查看证明

证明:设A∪Bˉ=P,Aˉ∩Bˉ=Q,x∈P,证明:设\bar{ A \cup B } = P,\bar{A} \cap \bar{B} = Q, x \in P,

则x∉A⋀x∉B则 x \notin A \bigwedge x \notin B

即x∈Aˉ⋀x∈Bˉ即 x \in \bar{A} \bigwedge x \in \bar{B}

∴x∈Aˉ∩Bˉ\therefore x \in \bar{A} \cap \bar{B}

∴P⊆Q\therefore P \subseteq Q

设y∈Q设y \in Q

则y∈Aˉ⋀y∈Bˉ则y \in \bar{A} \bigwedge y \in \bar{B}

∴y∉A⋀y∉B\therefore y \notin A \bigwedge y \notin B

∴y∈P\therefore y \in P

∴Q⊆P\therefore Q \subseteq P

由定理1.1得P=Q由定理1.1得P = Q

定理1.3也可由类似方法证明

吸收律

定理1.5:A∪(A∩B)=AA \cup (A \cap B) = A

定理1.5:A∩(A∪B)=AA \cap (A \cup B) = A

不知名公式

定理1.6:A∪(Aˉ∩B)=A∪BA \cup (\bar{A} \cap B) = A \cup B

差和对称差(异或)

差:设A、B为集合,x为元素

  1. x∈Ax \in A
  2. x∉Bx \notin B

由x组成的集合称为A与B的差集,记为A-B

  1. A−A=∅A-A = \emptyset
  2. $ A - \emptyset = A$
  3. A−E=∅A - E = \emptyset
  4. E−A=AˉE - A = \bar{A}

定理1.7:A−B=A∩BˉA - B = A \cap \bar{B}

定理1.7:A−(B∪C)=(A−B)∩(A−C)A - (B\cup C) = (A - B) \cap (A-C)

定理1.7:A−(B∩C)=(A−B)∪(A−C)A - (B\cap C) = (A - B) \cup (A-C)

对称差:设集合A、B,x为元素

  1. x∈A⋀x∉B⋁x \in A \bigwedge x \notin B \bigvee
  2. x∈B⋀x∉Ax \in B \bigwedge x \notin A

由x组成的集合称为A与B的对称差,记为A⊕BA \oplus B

定理1.8:A⊕B=(A−B)∪(B−A)A \oplus B = (A - B) \cup (B - A)

定理1.8:A⊕B=(A∪B)∩(Bˉ∪Aˉ)=(A∪B)−(A∩B)A \oplus B = (A \cup B) \cap (\bar{B} \cup \bar{A} ) = (A \cup B) - (A \cap B)

定理1.8:A∩(B⊕C)=(A∩B)⊕(A∩C)A \cap (B \oplus C) = (A \cap B) \oplus (A \cap C)

集合运算总结

等幂率

  1. A∩A=AA \cap A = A
  2. A∪A=AA \cup A = A

交换率

  1. A∩B=B∩AA \cap B = B \cap A
  2. A∪B=B∪AA \cup B = B \cup A
  3. A⊕B=B⊕AA \oplus B = B \oplus A

结合律

  1. (A∩B)∩C=A∩(B∩C)(A \cap B) \cap C = A \cap (B \cap C)
  2. (A∪B)∪C=A∪(B∪C)(A \cup B) \cup C = A \cup (B \cup C)
  3. (A⊕B)⊕C=A⊕(B⊕C)(A \oplus B) \oplus C = A \oplus (B \oplus C)

分配律

  1. A∩(B∪C)=(A∩B)∪(A∩C)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)
  2. A∪(B∩C)=(A∪B)∩(A∪C)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)
  3. A∩(B⊕C)=(A∩B)⊕(A∩C)A \cap (B \oplus C) = (A \cap B) \oplus (A \cap C)

摩根率

  1. A∩Bˉ=Aˉ∪Bˉ\bar{A \cap B} = \bar{A} \cup \bar{B}
  2. A∪Bˉ=Aˉ∩Bˉ\bar{A \cup B} = \bar{A} \cap \bar{B}

吸收率

  1. A∩(A∪B)=AA \cap (A \cup B) = A
  2. A∪(A∩B)=AA \cup (A \cap B) = A

补余率

  1. A∩Aˉ=∅A \cap \bar{A} = \emptyset
  2. A∪Aˉ=EA \cup \bar{A} = E

同一率

  1. A∩E=AA \cap E = A
  2. A∪∅=AA \cup \emptyset = A

零一率

  1. A∪E=EA \cup E = E
  2. A∩∅=∅A \cap \emptyset =\emptyset

其它

  1. Aˉˉ=A\bar{\bar{A}} = A
  2. A−B=A∩BˉA - B = A \cap \bar{B}
  3. A⊕B=(A−B)∪(B−A)=(A∩Bˉ∪(Aˉ∩B)=(A∪B)−(A∩B)=(A∪B)∩(Aˉ∪Bˉ)A \oplus B = (A - B) \cup (B - A) = (A \cap \bar{B} \cup (\bar{A} \cap B) = (A \cup B) - (A \cap B) = (A \cup B) \cap (\bar{A} \cup \bar{B})
  4. A⊕A=∅A \oplus A = \emptyset
  5. ∅ˉ=E\bar{\emptyset} = E
  6. $ \bar{E} = \emptyset$

评论