幂集的定义:

  • 对于集合 A,其幂集 P(A) 是 A 的所有子集构成的集合
  • 记 |A| = n,求 |P(A)| = ?

乘法原理

  1. 推导过程:
    • 对于集合 A 中的每个元素,在构造子集时都有两种选择:
      • 选入子集
      • 不选入子集
    • 每个元素的选择是独立的
    • 根据乘法原理:
      • 第1个元素:2种选择
      • 第2个元素:2种选择
      • 第n个元素:2种选择
    • 总的选择数 = 2 × 2 × … × 2 (n个2相乘)
    • 即 |P(A)| = 2

二进制数构造

  1. 另一种理解:

    • 可以用二进制数表示子集
    • n个元素对应n个二进制位
    • 每个位置:
      • 1表示选入
      • 0表示不选
    • n位二进制数的个数为 2
  2. 举例:

    • A = {a,b,c}, n = 3
    • 000 → ∅
    • 001 → {c}
    • 010 → {b}
    • 011 → {b,c}
    • 100 → {a}
    • 101 → {a,c}
    • 110 → {a,b}
    • 111 → {a,b,c}
    • |P(A)| = 2^3 = 8

因此,对于任意有限集 A,若 |A| = n,则 |P(A)| = 2^n。

递归的方法

  1. 递归思路:

    • 设集合 A = {a₁, a₂, …, aₙ}
    • 将 A 分解为:
      • 最后一个元素 aₙ
      • 剩余元素集合 A’ = {a₁, a₂, …, aₙ₋₁}
    • P(A) 可以由 P(A’) 递归构造:
      • P(A) = P(A’) ∪ {X ∪ {aₙ} | X ∈ P(A’)}
  2. 基数递推关系:

    • |P(A)| = |P(A’)| + |P(A’)|
    • 因为:
      • P(A’) 中的每个子集都在 P(A) 中
      • P(A’) 中的每个子集加入 aₙ 也在 P(A) 中
    • 即 |P(A)| = 2 × |P(A’)|
  3. 递归基:

    • 当 |A| = 0 时(空集)
    • P(∅) = {∅}
    • |P(∅)| = 1 = 2⁰
  4. 递推过程:

    • |P(∅)| = 2⁰ = 1
    • |P({a₁})| = 2 × 2⁰ = 2¹
    • |P({a₁,a₂})| = 2 × 2¹ = 2²
    • |P({a₁,a₂,a₃})| = 2 × 2² = 2³
    • |P(A)| = 2 × 2ⁿ⁻¹ = 2ⁿ
  5. 举例说明 A = {1,2}:

    • 从 A’ = {1} 开始:
      • P({1}) = {∅, {1}}
    • 构造 P({1,2}):
      • 不含2的子集:{∅, {1}}
      • 含2的子集:***
    • P({1,2}) = {∅, {1}, {2}, {1,2}}

这种递归理解展示了幂集的层次构造过程,也说明了为什么基数是 2ⁿ。


其它方法:

  1. 从组合数角度推导
    • 设集合含有个元素,对于集合的每一个子集,都可以看作是从个元素中选取若干个元素组成的。
    • 个元素中选取个元素组成的子集,就是空集,根据组合数公式,此时,即空集是集合个子集。
    • 个元素中选取个元素组成的子集个数,根据组合数公式,,即有个只含个元素的子集。
    • 个元素中选取个元素组成的子集个数,
    • 以此类推,从个元素中选取个元素组成的子集个数为
    • 个元素中选取个元素组成的子集就是集合本身,
    • 那么集合的子集个数就是从个元素中选取个、个、个、个元素组成子集个数的总和,即
    • 根据二项式定理,当时,,而。所以集合的子集个数为
  2. 通过分步计数原理推导
    • 对于集合中的每一个元素,在构成子集时都有两种选择:要么这个元素在子集中,要么不在子集中。
    • 因为集合个元素,对于第一个元素有种选择(在子集中或不在子集中),对于第二个元素同样有种选择,对于第三个元素也有种选择,以此类推,对于第个元素也有种选择。
    • 根据分步计数原理,完成一件事需要个步骤,做第步有种不同的方法,做第步有种不同的方法,,做第步有种不同的方法,那么完成这件事共有种不同的方法。
    • 所以构造集合的子集,总共有种不同的方式,即集合的子集个数为

综上,含有个元素的集合的子集个数为

graph TB
    A[幂集推导方法]
    A --> B[直接计数法]
    A --> C[递归构造法]
    A --> D[二进制映射法]

    B --> B1[每个元素两种选择]
    B --> B2[乘法原理]
    B --> B3[结果为2^n]
    
    C --> C1[分解为最后一个元素]
    C --> C2[和剩余元素集合]
    C --> C3["P(A) = P(A') ∪ {X ∪ {an} | X ∈ P(A')}"]
    C --> C4["|P(A)| = 2 × |P(A')|"]
    
    D --> D1[n个元素对应n位]
    D --> D2[0表示不选]
    D --> D3[1表示选入]
    D --> D4[共2^n种可能]

    style A fill:#f9f,stroke:#333,stroke-width:2px
    style B fill:#bbf,stroke:#333
    style C fill:#bbf,stroke:#333
    style D fill:#bbf,stroke:#333