n个不同元素排列问询:两个特定元素位置限制的题意及排列数求解
解答:特定元素受限的排列问题
先明确条件含义
Hey there! 先帮你把条件掰明白:“两个特定元素既不能出现在首位也不能出现在末位”,指的是a₁和a₂这两个元素,每一个都绝对不能占排列的第一个位置,同时也绝对不能占最后一个位置。简单说就是:
- a₁既不能在开头,也不能在结尾;
- a₂同样既不能在开头,也不能在结尾;
- 他俩只能待在排列中间的n-2个位置里。
计算符合条件的排列数
给你两种推导方法,选你看得顺的来理解:
方法一:直接构造合法排列
我们分两步来搭这个排列:
- 填首尾位置:因为首尾不能是a₁或a₂,所以只能从剩下的n-2个元素(a₃到aₙ)里挑2个来排首尾,这是排列问题,数量是
P(n-2, 2) = (n-2)(n-3)。 - 填中间位置:首尾确定后,剩下的n-2个元素(包括a₁、a₂和没被选去首尾的元素)可以随便排在中间的n-2个位置,排列数是
(n-2)!。
把两步的结果相乘,就是总的合法排列数:
(n-2)(n-3) * (n-2)!
方法二:总排列数减去不合法排列数
先算所有元素的总排列数是 n!,再减去不符合要求的排列数:
- 不合法的情况有四类:a₁在首、a₁在尾、a₂在首、a₂在尾,每类的排列数都是
(n-1)!,加起来是4*(n-1)!。 - 但这里有重复减去的情况:比如a₁在首且a₂在尾的排列,被减了两次;a₁在尾且a₂在首的排列也被减了两次。这两种情况的排列数各是
(n-2)!,得加回来补正。
所以不合法的总排列数是:
4*(n-1)! - 2*(n-2)!
用总排列数减去这个值,化简后和方法一的结果完全一致:
n! - 4*(n-1)! + 2*(n-2)! = (n-2)!*(n-2)(n-3)
内容的提问来源于stack exchange,提问作者looneysnoop




