这个计算器能做什么
本工具用来生成可重复组合(也叫多重集系数)的数值表。给定 n 种不同类型的物品,它会计算:当每种物品都可以被任意次数地选取时,选出大小为 r 的无序组合一共有多少种——并且对从起始值到结束值之间的每一个整数 r 都算一遍。该函数记作 \(H(n, r)\),其值等于二项式系数 \(C(n + r - 1, r)\)。
使用方法
先输入物品类型的数量 n(至少为 1),再分别填写 r 的起始值和结束值。计算器会为每一个 r 输出一行,显示对应的精确数值 \(H(n, r)\)。由于这些数字增长得极快,引擎采用精确大整数运算,即使是规模很大的表格也能保持完全准确。
公式详解
经典的"隔板法"(stars and bars)告诉我们:从 n 种类型中可重复地选取 r 个物品,等价于把 r 个相同的星号放进由 n − 1 块隔板分隔出的 n 个格子里。这 n + r − 1 个符号的排列方式总数就是 \(C(n + r - 1, r)\)。
$$\overline{C}(n, r) = \binom{n + r - 1}{r} = \frac{(n + r - 1)!}{r!\,(n - 1)!}$$
有两种特殊情形值得记住:\(H(n, 0) = 1\)(什么都不选,即空选择);\(H(1, r) = 1\)(只有唯一一种多重集,就是把那一种物品取 r 份)。
实例演算
取 n = 5,r 从 0 取到 4。\(H(5,0) = C(4,0) = 1\),\(H(5,1) = C(5,1) = 5\),\(H(5,2) = C(6,2) = 15\),\(H(5,3) = C(7,3) = 35\),\(H(5,4) = C(8,4) = 70\)。于是整张表读作 1、5、15、35、70。再验算一例:
$$H(30,4) = C(33,4) = \frac{33 \cdot 32 \cdot 31 \cdot 30}{24} = 40920$$
常见问题
它和普通组合有什么区别? 普通组合 \(C(n, r)\) 不允许重复选取;而这里每种类型都可以被多次选中,正因如此下标才变成了 \(n + r - 1\)。
顺序重要吗? 不重要。{A, A, B} 和 {B, A, A} 算作同一种选择。如果顺序有影响,那就该用可重复排列(\(n^r\))来计算了。
为什么数值会变得这么大? 多重集系数大致按 r 的 n − 1 次多项式增长,因此较大的 n 或较大的 r 都会产生天文数字般的整数——本工具用精确运算来处理它们。