套路

只看几个元素的相对次序

全排列里,指定的 kk 个元素之间的 k!k! 种先后次序把所有排法**均分**成 k!k! 等份;于是「这几个元素排成某种次序」的排法数 == 总排法数 ×合格次序数k!\times\dfrac{\text{合格次序数}}{k!},一步得数,不必分类。

什么时候用

题面只约束几个指定元素之间的先后关系,不管它们具体站在第几位:

  • 「甲在乙的前面」「AA 排在 BB 之前」——k=2k=2,合格次序 11 种,答案 =n!2=\dfrac{n!}{2}。
  • 「AA、BB 均在 CC 的同侧」——k=3k=3,合格次序 44 种(CC 不居中),答案 =n!×46=n!\times\dfrac46。
  • 「三个人按身高从矮到高站」——k=3k=3,合格次序 11 种,答案 =n!6=\dfrac{n!}{6}。
  • 「AA 在 BB 前、BB 在 CC 前」——同上,n!6\dfrac{n!}{6}。

识别标志:把那几个元素抽出来看,条件只涉及它们谁前谁后,与其余元素、与绝对位置无关。

为什么可以这么算

把全部 n!n! 个排列按「那 kk 个元素的相对次序」分堆,一共 k!k! 堆。

任取两种次序,用一个双射把一堆搬到另一堆:只把那 kk 个元素在它们占的 kk 个位置上重新摆一遍, 其余元素一动不动。这是可逆的,所以每堆一样大,各含 n!k!\dfrac{n!}{k!} 个排列。

于是「合格」的堆有几个,答案就是几份:

N=n!×合格的次序数k!.N=n!\times\frac{\text{合格的次序数}}{k!} .

这一步是等分,不是概率近似——n!n! 一定被 k!k! 整除,答案永远是整数。

三步写法

  1. 认出被约束的那 kk 个元素,写下 k!k! 是多少。
  2. 把 k!k! 种次序列出来(k=3k=3 时只有 6 种,手写得完),数出合格的有几种。
  3. 乘:n!×合格数k!n!\times\dfrac{\text{合格数}}{k!}。

以「AA、BB、CC 六字母排一排,AA、BB 在 CC 同侧」为例:3!=63!=6 种次序 ABCABC、ACBACB、BACBAC、BCABCA、CABCAB、CBACBA,CC 居中的只有 ACBACB、BCABCA 两种, 故合格 44 种,答案 6!×46=720×23=4806!\times\dfrac46=720\times\dfrac23=480。

常见失手

  • 元素之间不等价时不能用。比如「AA 与 BB 相邻」约束的是距离不是次序,各堆不等大,这条失效——那类题要用捆绑法。
  • 条件里混进了绝对位置就失效。「AA 不在第一位且 AA 在 BB 前」里的前半句与位置有关,得先拆开处理。
  • 合格次序数别数漏。k=3k=3 时老老实实把 66 种写出来划掉不合格的,比在脑子里数快也更稳。
  • 有重复元素(如两个相同的字母)时,k!k! 要换成相应的可区分次序数,否则分母偏大。

学它之前先会

共 3 条前置、最深 3 层。

共 1 道题考到本条。