排列组合计算
精确计算组合数 C(n,k) 与排列数 P(n,r):支持大数 BigInt 精确值、对数近似防溢出、杨辉三角、二项式展开系数、可重复组合与多组选取(多项式系数)。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
组合数 C(n, k)
120C(n, k) 的十进制位数
3ln C(n, k)(对数近似)
4.787492排列数 P(n, k)
720可重复组合 C(n + k − 1, k)
220多项式系数
30杨辉三角(前 n 行)
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1
二项式展开 (a + b)^n
a^10 + 10a^9b + 45a^8b^2 + 120a^7b^3 + 210a^6b^4 + 252a^5b^5 + 210a^4b^6 + 120a^3b^7 + 45a^2b^8 + 10ab^9 + b^10
这个工具能做什么
- 算彩票、抽奖的中奖概率:C(52,5) 这种大组合数也能给出精确整数,不会因为浮点误差变成近似值。
- 做统计与概率作业:一次拿到 C(n,k)、P(n,k)、可重复组合与多项式系数,省去逐个手算。
- 核对二项式展开:把 (a + b)^n 的系数按杨辉三角逐项列出,方便与课本答案对照。
- 需要估算超大组合数时看对数与位数:n 上万以后精确值没有意义,量级才是关键。
示例
输入
n = 10,k = 3,分组 2,2,1
输出
C(10, 3) = 120,P(10, 3) = 720,可重复组合 C(12, 3) = 220,ln C(10, 3) ≈ 4.787492,位数 3,多项式系数 5!/(2!·2!·1!) = 30
杨辉三角按 n 行显示(最多 20 行),二项式展开在 n ≤ 20 时给出。
常见问题
C(n, k) 和 P(n, k) 有什么区别?
组合只看选出了哪些,排列还看顺序。P(n, k) = C(n, k) × k!,所以从 10 个人里选 3 个是 C(10,3)=120 种,让他们排成一队则是 P(10,3)=720 种。
n 很大时结果还准吗?
n 不超过 2000 时是逐位精确的 BigInt 整数,可以放心复制。超过之后组合数的位数会到几千位,工具改为给出 ln C(n,k) 与十进制位数,这些数字仍然可靠,但不会给出完整整数。
k 大于 n 会怎样?
按组合数学的惯例返回 0,而不是报错:从 n 个物品里选不出 k 个。对数形式则显示为 −∞。
可重复组合与多项式系数分别用在什么场景?
可重复组合 C(n+k−1, k) 用于「允许重复地选」的情形,比如从 3 种口味里买 2 个冰淇淋球(6 种)。多项式系数用于把一组互不相同的物品分成若干指定大小的组,例如把 5 个人分成 2、2、1 三组有 30 种分法。
杨辉三角为什么和组合数一致?
因为 C(n, k) = C(n−1, k−1) + C(n−1, k) 正是杨辉三角的递推式:每个数等于它上方两个数之和。工具里的单测会逐项对比两种算法,确保完全一致。
关键词:combinationpermutationnCrnPrbinomial coefficientpascal trianglemultinomial组合数排列数杨辉三角二项式展开多项式系数可重复组合