求助容斥原理
  • 板块学术版
  • 楼主steambird
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/11/8 20:36
  • 上次更新2024/11/8 22:36:50
查看原帖
求助容斥原理
589961
steambird楼主2024/11/8 20:36

问题:已知一个长度为 nn1n1 \sim n 的排列。设 f(i)f(i) 表示有多少个长度为 nn 的排列,满足有恰好 ii 个位置与已知排列相同。显然,f(0)f(0) 就是错排问题的答案。

nn 个元素的错排问题 d(n)d(n) 可以这么求:

f(0)=d(n)=n!n!1!+n!2!n!3!+f(0) = d(n) = n! - {n! \over 1!} + {n! \over 2!} - {n! \over 3!} + \dots

n!n! 后面的部分实际上在容斥至少有若干个位置相同的情况。

由此似乎可以得出一个递推式子计算 f(i)f(i)

f(n)=1f(i)=n!(ni)!f(i+1)f(n) = 1 \\ f(i) = {{n!} \over {(n-i)!}} - f(i+1)

但这是错的。为什么呢?

另一种计算方式为:

f(i)=(ni)×d(ni)f(i) = {n \choose i} \times d(n-i)

其中 d(n)d(n) 仍然定义为 nn 个元素的错排方案数。特别地,d(0)=1d(0)=1

这好像是对的。为什么呢?

2024/11/8 20:36
加载中...