什么是子集计算器?
子集是指从一个更大的集合中选取若干元素所构成的集合,其中既包含空集,也包含集合本身。本计算器可以回答两个常见的组合数学问题:含有 n 个元素的集合一共有多少个子集,以及其中恰好含有 k 个元素的子集有多少个。无论你是正在学习集合论、概率论或离散数学的学生,还是需要统计各种可能组合的人,都能用得上它。
使用方法
在 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\)。
实例演算
假设 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 时,数值就会超出标准浮点数所能表示的范围。