通过MCP连接 →

输入计算

数学公式

广告

结果

子集总数
32
= 2^5 (includes the empty set and the full set)
真/非空子集 (2ⁿ − 1) 31
Subsets of size k = 2 — C(n,k) 10

什么是子集计算器?

子集是指从一个更大的集合中选取若干元素所构成的集合,其中既包含空集,也包含集合本身。本计算器可以回答两个常见的组合数学问题:含有 n 个元素的集合一共有多少个子集,以及其中恰好含有 k 个元素的子集有多少个。无论你是正在学习集合论、概率论或离散数学的学生,还是需要统计各种可能组合的人,都能用得上它。

一个三元素集合,其全部八个子集以成组的小圆圈显示
含 3 个元素的集合有 \(2^3 = 8\) 个子集,包括空集和全集。

使用方法

n 中输入集合的大小(即不同元素的个数)。计算器会立即返回子集总数(等于 \(2^n\)),以及真/非空子集的数量(\(2^n - 1\))。如果还想知道恰好含 k 个元素的子集数量,可在 k 中输入子集大小,结果将用二项式系数 \(C(n, k)\) 算出。若只需要总数,把 k 留空即可。

公式详解

对于集合中的每个元素,它要么被选入子集,要么被排除在外——每个元素都有 2 种选择。当有 n 个相互独立的元素时,子集总数就是 $$\text{子集总数} = 2 \times 2 \times \dots \times 2 = 2^n$$ 若要统计大小固定为 k 的子集数量,则使用组合公式 $$C(n, k) = \frac{n!}{k!\,(n - k)!}$$ 它表示从 n 个元素中不计顺序地选取 k 个的方法数。把 k 从 0 取到 n,将所有 \(C(n, k)\) 相加,结果正好等于 \(2^n\)。

Advertisement
示意图显示子集总数等于 2 的 n 次方,以及从 n 个元素中选取的一个大小为 k 的子集
子集总数按 \(2^n\) 增长,而 \(C(n,k)\) 统计固定大小 k 的子集数。

实例演算

假设 n = 5。子集总数为 \(2^5 = 32\),非空子集的数量为 31。含 2 个元素的子集数量为 $$C(5, 2) = \frac{5!}{2! \cdot 3!} = \frac{120}{2 \cdot 6} = 10$$ 也就是说,从一个 5 元素集合中恰好能取出 10 个不同的元素对。

常见问题

子集总数包含空集吗? 包含。\(2^n\) 这个结果同时包含了空集和整个集合本身。若只算非空子集,请减 1;若要算真且非空的子集,请减 2。

如果 k 大于 n 怎么办? 这样的子集并不存在,因此只要 \(k > n\) 或 \(k < 0\),\(C(n, k)\) 就等于 0。

为什么上限大约是 170? \(2^n\) 和阶乘的增长速度极快,当 n 超过约 170 时,数值就会超出标准浮点数所能表示的范围。

最后更新: