首先来说说限制排列
例子:
相邻禁位排列问题:在整数1,2,3,...,n的无重全排列中,要求,求全体排列数
分析:利用容斥不难得到
旋转木马问题:8个小孩围坐在旋转木马上,问有多少种变换座位的方法,使得每个小孩前面坐的都不是原来的小孩?
分析:其实做法跟上面的方法一样,只是注意这里是换排列,那么总数就应该是7!,得到结果为:
棋盘多项式:
n个不同元素的一个全排列可以看成是n个相同的棋子在n*n的棋盘上的一个布局,这个布局满足每一行或每一列只有一个棋子。
例如:41352对应如图。
那么如果把棋盘推广到任意形状
我们令表示k个棋子布到棋盘C上的方案数。所以容易知道:
这里规定
设是棋盘C的某一指定格子所在的行和列都去掉后所得的棋盘,是仅去掉该格子后所得到的棋盘。
那么有:
设C为一棋盘,那么称为C的棋盘多项式。
那么我们先来看它的一些性质:
(1)
推导过程:
(2)如果C由相互分离的组成,即的任意格子所在的行和列都没有的格子,则有:
所以结合上面的两个性质,我们可以得到:
下面介绍一个定理:
设为k个棋子布入禁区的方案数,则有禁区的布子方案数为(即禁区内不布棋子的方案数):
那么现在我们就可以来解题了,现在给出下面的一题:
1,2,3,4四位工人,A,B,C,D四项任务,条件是:1不干B,2不干B,C,3不干C,D,4不干D,问有多少种方案?
分析:那么按照上面的思路,写出禁区的棋盘多项式
那么进一步就可以得到:
到了这里,对于错排公式,我们也可以通过棋盘多项式来认识它了。
对于它,我们可以看成是棋盘的主对角线是禁区,然后它的棋盘多项式很容易根据上述性质(2)得到是
所以这样我们就知道了,所以进一步得到错排公式了。