组合数学——错序排列

组合数学——错序排列

问题:有5个编号的箱子和5个编号的苹果,现在要把这5个苹果放进5个箱子里,每个箱子放一个,问有多少种放法使得每个箱子的编号和其内部苹果编号不相同。形式化地讲,设集合 P P P 表示每个箱子 i i i 内苹果编号是 P i P_i Pi,问有多少种 P P P满足 ∀ i , P i ≠ i \forall i,P_i\neq i i,Pi=i

方法一:递推

为方便书写,规定“放错”即 P i ≠ i P_i\neq i Pi=i ,“放对“反之。

不难想到设 F n F_n Fn 表示 n n n 个箱子按题目要求放 n n n 个苹果的方案数。

考虑新放一个苹果,放在哪里不好说,所以姑且将它放在新箱子里,然后与前面一个交换。

那么可以从两种情况转移:

  • n − 1 n-1 n1 个都“放错“。那么第 n n n 个苹果和前 n − 1 n-1 n1 个苹果任意一个交换都是合法的,即有 n − 1 n-1 n1 种选择,所以可以从 F n − 1 × ( n − 1 ) F_{n-1}\times(n-1) Fn1×(n1) 转移。

  • n − 1 n-1 n1至少有一个“放对“。但是会发现如果有超过一个“放对“,需要至少两次的交换,那么就会重复计数。

    所以这种情况等价于前 n − 1 n-1 n1仅有一个“放对“。

    我们的新苹果必须要跟那个“放对”的苹果交换,也就是只有一种可能。问题在于这种情况下的长度为 n − 1 n-1 n1 的序列有多少种。

    问题变得朴素许多。先将 n − 2 n-2 n2 个苹果错序排好,即有 F n − 2 F_{n-2} Fn2 种序列。再加入一个“放对”的苹果,有 n − 1 n-1 n1 个空位,故有 n − 1 n-1 n1 种放法,所以此情况可以从 F n − 2 × ( n − 1 ) F_{n-2}\times (n-1) Fn2×(n1) 转移。

综上,得出递推式 F n = F n − 1 × ( n − 1 ) + F n − 2 × ( n − 1 ) = ( n − 1 ) ( F n − 1 + F n − 2 ) F_n=F_{n-1}\times(n-1)+F_{n-2}\times(n-1)=(n-1)(F_{n-1}+F_{n-2}) Fn=Fn1×(n1)+Fn2×(n1)=(n1)(Fn1+Fn2)


方法二:容斥原理

未知

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值