排列组合怎么区分?A(n,r) 和 C(n,r) 一次讲透
排列组合的所有困难都集中在一个判断上:这道题的顺序算不算数? 算,用排列;不算,用组合。听起来简单,但「5 个人选 3 个当班长、副班长、学习委员」和「5 个人选 3 个去参赛」,很多人到考场上还是要犹豫十秒。这篇文章用五个典型题把这个判断练成条件反射,再讲透隔板法、捆绑法、插空法和错排这四个必考技巧。
两个公式和它们的关系
排列 A(n, r):从 n 个不同元素中取出 r 个,按顺序排成一列的方法数。
A(n, r) = n! / (n − r)!
= n × (n−1) × (n−2) × ... × (n−r+1)
右边的形式更好用:从 n 开始往下连乘 r 个数。A(5,3) = 5×4×3 = 60,不用算阶乘。
组合 C(n, r):从 n 个不同元素中取出 r 个,不考虑顺序组成一组的方法数。
C(n, r) = n! / [ r! × (n − r)! ]
= A(n, r) / r!
两者的关系是一句话:组合数 = 排列数 ÷ r!
为什么要除以 r!?因为选出的 r 个元素内部有 r! 种排列方式,在排列里它们被算成了 r! 个不同结果,而在组合里它们是同一个结果。
比如从 {A,B,C,D,E} 中取 3 个:
- 排列会把 ABC、ACB、BAC、BCA、CAB、CBA 算成 6 种
- 组合只算 1 种(就是「{A,B,C} 这个集合」)
所以 C(5,3) = A(5,3) ÷ 3! = 60 ÷ 6 = 10。
| 记号 | 别名 | 顺序 | 数值示例 |
| A(n,r) 或 P(n,r) | 排列数 | 计较 | A(5,3) = 60 |
| C(n,r) 或 (n r) | 组合数、二项式系数 | 不计较 | C(5,3) = 10 |
| n! | 阶乘 | 全排列 | 5! = 120 |
永远满足 A(n,r) ≥ C(n,r),且倍数正好是 r!。快速验算这类数值,用排列组合计算器输入 n 和 r 直接得到两个结果,做题时用来对答案很省事。
五个典型题辨析:到底有序还是无序
题一:选班委 vs 选代表
(a)5 名同学中选 3 人分别担任班长、副班长、学习委员,有多少种方案?
张三当班长和张三当学习委员是不同的结果——职务不同,顺序有意义。
用排列:A(5,3) = 5×4×3 = 60 种
(b)5 名同学中选 3 人参加比赛,有多少种方案?
选中张三、李四、王五,无论按什么次序说出来,都是同一支队伍。
用组合:C(5,3) = 10 种
判断口诀:选出来之后,元素之间有没有「身份差异」?有就是排列,没有就是组合。
题二:握手问题
10 个人两两握手,共握多少次?
A 和 B 握手,与 B 和 A 握手,是同一次握手。无序。
C(10,2) = (10×9)/2 = 45 次
变式:10 个人互相寄贺卡,每人给其他每个人寄一张,共寄多少张?
A 寄给 B 和 B 寄给 A 是两张不同的卡。有序。
A(10,2) = 10×9 = 90 张
同样的 10 个人、同样的两两配对,一个是 45 一个是 90,差别只在于「这个关系是不是双向对称的」。
题三:彩票
双色球红球区从 1-33 中选 6 个,有多少种组合?
开奖号码 03 07 12 19 25 31,和按任何其他次序报出来都是同一注。无序。
C(33,6) = (33×32×31×30×29×28) / (6×5×4×3×2×1)
= 1,107,568,320 / 720
= 1,107,568
再算蓝球:从 1-16 中选 1 个,C(16,1) = 16。
总组合数 = 1,107,568 × 16 = 17,721,088
中一等奖的概率是 1/17,721,088,约 1770 万分之一。 换个角度感受这个数:如果每注 2 元,把所有组合买一遍要花 ¥35,442,176。
题四:密码
用 0-9 十个数字设置 4 位密码,数字可以重复,有多少种?
顺序当然重要(1234 和 4321 是不同密码),而且允许重复——这既不是排列也不是组合,是分步计数原理:
10 × 10 × 10 × 10 = 10^4 = 10,000 种
如果不允许重复呢? 这才是排列:
A(10,4) = 10×9×8×7 = 5,040 种
「可重复」是排列组合题里的第三个维度,一定要看清题目有没有这个条件。 记住:可重复的有序选取用 n^r,不可重复的有序选取用 A(n,r)。
题五:分组问题(最容易错)
6 个人分成 3 组,每组 2 人,有多少种分法?
第一反应可能是:C(6,2) × C(4,2) × C(2,2) = 15 × 6 × 1 = 90。
这个答案是错的。 因为三个组是「无差别」的——先选出 {A,B} 再选 {C,D} 再选 {E,F},和先选 {C,D} 再选 {A,B} 再选 {E,F},得到的是同一种分组结果,但被算了两次。
三个组的排列方式有 3! = 6 种,所以要除以 6:
90 ÷ 3! = 15 种
但如果题目变成「分到甲乙丙三个不同的房间」,那三个组就有了身份差异,答案就是 90 种。
平均分组必须除以组数的阶乘,非平均分组或有编号分组则不用除。 这是分组问题唯一的考点,但错误率极高。
再看一个混合情形:6 个人分成 3 组,人数分别为 1、2、3 人。
C(6,1) × C(5,2) × C(3,3) = 6 × 10 × 1 = 60 种,不需要除,因为三个组人数不同,本身就可以区分。
三个必备技巧:捆绑、插空、隔板
捆绑法:解决「必须相邻」
题:7 人排成一排,甲乙必须相邻,有多少种排法?
把甲乙看成一个「捆绑体」,问题变成 6 个元素的全排列,再考虑捆绑体内部甲乙的顺序。
6! × 2! = 720 × 2 = 1,440 种
推广:k 个元素必须相邻,就把它们捆成 1 个,用 (n−k+1)! × k!。
插空法:解决「不能相邻」
题:7 人排成一排,甲乙不能相邻,有多少种排法?
方法一(正难则反): 总数减去相邻的情况。
7! − 1440 = 5040 − 1440 = 3,600 种
方法二(插空): 先把其余 5 人排好(5! 种),5 个人之间和两端共产生 6 个空位,从中选 2 个插入甲乙(有顺序,用排列)。
5! × A(6,2) = 120 × 30 = 3,600 种
两种方法结果一致。「不相邻」优先用插空法,「相邻」用捆绑法,这是最快的路径。
关键点是数清空位:n 个人排好后有 n+1 个空位(含两端)。如果题目要求「不能排在两端」,那就只有 n−1 个空位。
隔板法:解决「相同物品分给不同的人」
题:10 个完全相同的苹果分给 3 个小朋友,每人至少 1 个,有多少种分法?
把 10 个苹果排成一行,中间有 9 个缝隙。放 2 块隔板进去,就把苹果分成了 3 堆。
C(9,2) = 36 种
通式:n 个相同物品分给 r 个人,每人至少 1 个,答案是 C(n−1, r−1)。
变式:允许有人分不到(可以为 0)怎么办?
用「先借后还」的技巧:先给每人预支 1 个苹果(一共借出 3 个),问题就变成把 13 个苹果按「每人至少 1 个」分,最后每人还回 1 个。
C(13−1, 3−1) = C(12,2) = 66 种
通式:n 个相同物品分给 r 个人,允许为 0,答案是 C(n+r−1, r−1)。
隔板法的适用前提有两个:物品必须完全相同,人(容器)必须互不相同。 如果苹果各不相同,就不能用隔板法,要用其他方法。
错排问题
题:n 封信装进 n 个写好地址的信封,全部装错,有多少种装法?
这叫错排(Derangement),记作 D(n)。
递推公式:
D(n) = (n − 1) × [ D(n−1) + D(n−2) ]
D(1) = 0, D(2) = 1
通项公式:
D(n) = n! × [ 1 − 1/1! + 1/2! − 1/3! + ... + (−1)^n / n! ]
常用值:
| n | D(n) | n! | D(n)/n! |
| 1 | 0 | 1 | 0 |
| 2 | 1 | 2 | 0.5 |
| 3 | 2 | 6 | 0.333 |
| 4 | 9 | 24 | 0.375 |
| 5 | 44 | 120 | 0.367 |
| 6 | 265 | 720 | 0.368 |
| 7 | 1,854 | 5,040 | 0.3679 |
| 8 | 14,833 | 40,320 | 0.36788 |
注意最后一列:D(n)/n! 迅速收敛到 1/e ≈ 0.3679。
这意味着一个漂亮的结论:无论有多少封信,全部装错的概率都约等于 36.8%。 5 封信是 36.7%,100 封信还是 36.8%。这个反直觉的结果是概率论的经典案例,处理这类涉及极限和大数的估算时,统计计算器可以帮你快速验证收敛趋势。
考试中常见的变式是部分错排:n 个元素中恰好有 k 个在正确位置,其余全错。
方法数 = C(n, k) × D(n − k)
例:5 封信中恰好 2 封装对,有多少种? C(5,2) × D(3) = 10 × 2 = 20 种。
杨辉三角与组合数的三条性质
杨辉三角(帕斯卡三角)的第 n 行第 r 个数就是 C(n, r)(行列均从 0 开始计数):
n=0: 1
n=1: 1 1
n=2: 1 2 1
n=3: 1 3 3 1
n=4: 1 4 6 4 1
n=5: 1 5 10 10 5 1
n=6: 1 6 15 20 15 6 1
从这张图能直接读出三条最有用的性质。
性质一(对称性):C(n, r) = C(n, n−r)
每一行左右对称。从 10 个人里选 3 个,等价于从 10 个人里剔除 7 个——选出来和剩下的是一一对应的。
实用价值:C(20,18) 不用硬算,等于 C(20,2) = 190。 当 r 超过 n/2 时,一律换成 n−r 来算,能省掉大量计算。
性质二(递推 / 帕斯卡公式):C(n, r) = C(n−1, r−1) + C(n−1, r)
每个数等于上一行相邻两数之和(这就是杨辉三角的构造规则)。
组合意义:考虑元素 X 选不选。选 X,则要从剩下 n−1 个中再选 r−1 个,方法数 C(n−1, r−1);不选 X,则从剩下 n−1 个中选 r 个,方法数 C(n−1, r)。两种情况互斥且穷尽,相加即得。
性质三(行和):C(n,0) + C(n,1) + ... + C(n,n) = 2^n
每行数字之和是 2 的幂。
组合意义:n 个元素的所有子集总数。每个元素都有「选」和「不选」两种状态,共 2^n 种;而按子集大小分类求和,就是左边的式子。
实用推论:一个 5 人小组能组成多少个非空小队(人数不限)? 2^5 − 1 = 31 个(减掉空集)。
二项式定理也是从这里来的:
(a + b)^n = Σ C(n,r) × a^(n−r) × b^r
例:(x+2)^4 中 x² 项的系数是多少? 取 r=2:C(4,2) × 2² = 6 × 4 = 24。
这些整数运算涉及大量约分,遇到 C(50,25) 这种大数时,中间结果会超出常规计算范围,先用最大公约数最小公倍数计算器把分子分母约干净再乘,能避免溢出和手算错误。
总结
区分排列和组合只需要问一句:选出来的元素之间有没有身份差异(顺序是否有意义)? 有就用 A(n,r) = n!/(n−r)!,没有就用 C(n,r) = A(n,r)/r!。握手用组合、寄贺卡用排列,同一批人差了一倍。
四个技巧对应四类题型:相邻用捆绑法(捆成一个再乘内部排列)、不相邻用插空法(n 人排好有 n+1 个空)、相同物品分组用隔板法(至少 1 个用 C(n−1,r−1),允许为 0 用 C(n+r−1,r−1))、全装错用错排 D(n),概率恒为 36.8%。
最容易错的是平均分组要除以组数的阶乘——6 人分 3 组每组 2 人是 15 种不是 90 种,但如果三个组有编号就是 90 种。
组合数的三条性质里,对称性 C(n,r)=C(n,n−r) 在计算时最省力,永远把 r 换成较小的那个来算。