🔢 排列组合计算
P(n,r) 排列 · C(n,r) 组合 · 阶乘步骤
P(n,r) 排列 · C(n,r) 组合 · 阶乘步骤
排列P(n,r)考虑顺序(如选班长和副班长),组合C(n,r)不考虑顺序(如选2个代表)。排列数总是大于等于组合数。
P(n,r)=n!/(n-r)!。C(n,r)=n!/(r!(n-r)!)=P(n,r)/r!。如C(5,2)=10,P(5,2)=20。
密码组合(排列)、彩票选号(组合)、比赛对阵安排、座位排列、工作分配等场景都会用到排列组合。
按定义0!=1。这是约定,是为了让排列组合公式在边界情况(如r=0或r=n)下依然成立。
它们相等:C(n,r)=C(n,n-r)。因为从n个里选r个,等价于从n个里不选n-r个。如C(10,3)=C(10,7)=120。
从n个元素里不可能选出比n还多的元素,所以当r>n时,无论排列还是组合结果都是0。
利用C(n,r)=C(n,n-r)可以选较小的r计算,减少运算量。例如C(100,98)直接算很大,但C(100,2)=100×99/2=4950,结果一样。
古典概率=P(有利事件数)/P(总事件数),而有利事件数和总事件数常用组合数计算。如摸5张牌是同花的概率,就要用组合数算分母和分子。
排列P(n,r)可以理解为"分步选择":选第1个有n种,第2个有n-1种……第r个有n-r+1种,所以P(n,r)=n×(n-1)×…×(n-r+1)=n!/(n-r)!。
组合C(n,r)是在排列的基础上,去掉r个被选元素内部的顺序(r!种),所以C(n,r)=P(n,r)/r!。
| n | C(n,0) | C(n,1) | C(n,2) | C(n,3) | C(n,4) |
|---|---|---|---|---|---|
| 3 | 1 | 3 | 3 | 1 | - |
| 4 | 1 | 4 | 6 | 4 | 1 |
| 5 | 1 | 5 | 10 | 10 | 5 |
| 6 | 1 | 6 | 15 | 20 | 15 |
| 7 | 1 | 7 | 21 | 35 | 35 |
| 8 | 1 | 8 | 28 | 56 | 70 |
排列组合里的组合数C(n,r)正是二项式展开(a+b)ⁿ的各项系数,它们排成的三角形就是杨辉三角(帕斯卡三角)。
杨辉三角每一行的两端都是1,中间每个数是它左上方和右上方的两个数之和。这在手算小规模组合数时非常方便。
| n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| n! | 1 | 1 | 2 | 6 | 24 | 120 | 720 | 5040 | 40320 | 362880 | 3628800 |
| 表达式 | 计算结果 | 说明 |
|---|---|---|
| P(4,2) | 12 | 4×3 |
| P(5,3) | 60 | 5×4×3 |
| C(4,2) | 6 | 4×3/2 |
| C(6,3) | 20 | 6×5×4/6 |
| C(10,5) | 252 | 10!/(5!5!) |
1. 输入总数n和选取数r。
2. 查看排列数P(n,r)和组合数C(n,r)。
3. 大数结果会自动显示科学计数法格式。