错排问题的二项式反演解法

前言

错排是一个很经典的问题,对此,有一个二项式反演的求法。

  • 常见方法

正常的错排的公式是基于容斥的。记 Pi P i 表示满足 i i 号点在自己的位置的排列,那么错排就是求一个: UPi,那么很明显用容斥原理计算一下就可以得到式子,这里不多说。

  • 二项式反演

如果是要求错排,我们考虑其补集,就是说 n n 个点的排列,有k个点在自己原来的位置的方案,那么我们答案就是 k=0 k = 0 的时候。
考虑怎么求这个东西。
硬点 k k 个点在自己的原位,即是 Cnk,然后剩下的随便排,就是有 (nk)! ( n − k ) ! 种,但是明显会算重复以及不合法的。考虑容斥,对于一个 k0k k 0 ≥ k ,我们在硬点的时候有 Ckk0 C k 0 k 的方案硬点到此,然后有 Ck0n C n k 0 的选颜色的方案,所以就是这样,将这个式子取 k=0 k = 0 的时候,与常见的方法算出来的一模一样。
具体的,式子就是:

k0=0(1)k0kCk0nCkk0(nk0)! ∑ k 0 = 0 ( − 1 ) k 0 − k C n k 0 C k 0 k ( n − k 0 ) !

  • 原理

下面从二项式反演的角度来说明这个问题:
首先我们从广义的容斥原理来说,设 fi f i 为容斥系数,那么应当有:
ni=0Cinf(i)=[n=k] ∑ i = 0 n C n i f ( i ) = [ n = k ]
所以就出来了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值