📝 博客 · · ⏱ 13 分钟

排列组合怎么区分?A(n,r) 和 C(n,r) 一次讲透

有序用排列、无序用组合,通过选班委、握手、彩票、密码、分组五个典型题辨析。讲透隔板法、捆绑法、插空法与错排问题,附杨辉三角与组合数三条核心性质。

数学排列组合解题方法

排列组合怎么区分?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 个:

所以 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! ]

常用值:

nD(n)n!D(n)/n!
1010
2120.5
3260.333
49240.375
5441200.367
62657200.368
71,8545,0400.3679
814,83340,3200.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 换成较小的那个来算。