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

集合基本概念

集合的表示法

  1. 列举法
  2. 特征法

子集

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

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

全集和补集

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

  1. xEx \in E
  2. xAx \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(n1)×b1+...+Cnn1×a1×bn1+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. AB=BAA \cap B = B \cap AAB=BAA \cup B = B \cup A
  2. (AB)C=A(BC)(A \cap B) \cap C = A \cap (B \cap C)(AB)C=A(BC)(A \cup B) \cup C = A \cup (B \cup C)——结合律
  3. AA=AA \cap A = AAA=AA \cup A = A
  4. A=A \cap \emptyset = \emptysetA=AA \cup \emptyset = A
  5. AE=AA \cap E = AAE=EA \cup E = E

分配律

定理1.3:A(BC)=(AB)(AC)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)

定理1.3:A(BC)=(AB)(AC)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)

德·摩根率

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

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

证明
点击查看证明

证明:设ABˉ=P,AˉBˉ=Q,xP,证明:设\bar{ A \cup B } = P,\bar{A} \cap \bar{B} = Q, x \in P,

xAxB则 x \notin A \bigwedge x \notin B

xAˉxBˉ即 x \in \bar{A} \bigwedge x \in \bar{B}

xAˉBˉ\therefore x \in \bar{A} \cap \bar{B}

PQ\therefore P \subseteq Q

yQ设y \in Q

yAˉyBˉ则y \in \bar{A} \bigwedge y \in \bar{B}

yAyB\therefore y \notin A \bigwedge y \notin B

yP\therefore y \in P

QP\therefore Q \subseteq P

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

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

吸收律

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

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

不知名公式

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

差和对称差(异或)

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

  1. xAx \in A
  2. xBx \notin B

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

  1. AA=A-A = \emptyset
  2. $ A - \emptyset = A$
  3. AE=A - E = \emptyset
  4. EA=AˉE - A = \bar{A}

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

定理1.7:A(BC)=(AB)(AC)A - (B\cup C) = (A - B) \cap (A-C)

定理1.7:A(BC)=(AB)(AC)A - (B\cap C) = (A - B) \cup (A-C)

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

  1. xAxBx \in A \bigwedge x \notin B \bigvee
  2. xBxAx \in B \bigwedge x \notin A

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

定理1.8:AB=(AB)(BA)A \oplus B = (A - B) \cup (B - A)

定理1.8:AB=(AB)(BˉAˉ)=(AB)(AB)A \oplus B = (A \cup B) \cap (\bar{B} \cup \bar{A} ) = (A \cup B) - (A \cap B)

定理1.8:A(BC)=(AB)(AC)A \cap (B \oplus C) = (A \cap B) \oplus (A \cap C)

集合运算总结

等幂率

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

交换率

  1. AB=BAA \cap B = B \cap A
  2. AB=BAA \cup B = B \cup A
  3. AB=BAA \oplus B = B \oplus A

结合律

  1. (AB)C=A(BC)(A \cap B) \cap C = A \cap (B \cap C)
  2. (AB)C=A(BC)(A \cup B) \cup C = A \cup (B \cup C)
  3. (AB)C=A(BC)(A \oplus B) \oplus C = A \oplus (B \oplus C)

分配律

  1. A(BC)=(AB)(AC)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)
  2. A(BC)=(AB)(AC)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)
  3. A(BC)=(AB)(AC)A \cap (B \oplus C) = (A \cap B) \oplus (A \cap C)

摩根率

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

吸收率

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

补余率

  1. AAˉ=A \cap \bar{A} = \emptyset
  2. AAˉ=EA \cup \bar{A} = E

同一率

  1. AE=AA \cap E = A
  2. A=AA \cup \emptyset = A

零一率

  1. AE=EA \cup E = E
  2. A=A \cap \emptyset =\emptyset

其它

  1. Aˉˉ=A\bar{\bar{A}} = A
  2. AB=ABˉA - B = A \cap \bar{B}
  3. AB=(AB)(BA)=(ABˉ(AˉB)=(AB)(AB)=(AB)(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. AA=A \oplus A = \emptyset
  5. ˉ=E\bar{\emptyset} = E
  6. $ \bar{E} = \emptyset$

评论