首页 > 其他分享 >错排

错排

时间:2024-02-04 18:01:41浏览次数:17  
标签:infty aligned frac sum 下标 错排

定义

错排,也就是全错的排列,即长度为 \(n\) 的排列满足 \(\forall i,a_i\ne i\) 的方案数。
一般采用 \(d_n\) 表示错排。

递推

第 \(n\) 个元素不能放在下标为 \(n\) 的格子里,所以假设放在下标为 \(p(p\ne n)\) 的格子。
第 \(p\) 个元素如果放在下标为 \(n\) 的格子里,其他元素的方案数就是 \(d_{n-2}\)。
第 \(p\) 个元素如果不放在下标为 \(n\) 的格子里,那么建立一个对应关系。发现 \(1\sim n-1\) 这些元素都有且仅有一个位置不能放,这就是一个错排,方案数就是 \(d_{n-1}\)。
由于 \(p\) 有 \(n-1\) 种取值,所以,\(d_n=(n-1)(d_{n-1}+d_{n-2})\)。

通项

采用容斥原理,钦定 \(k\) 个元素强行放在原本的位置上。

\[d_n=\sum_{k=0}^n(-1)^k\binom nk(n-k)! \]

这个式子也可以用二项式反演获得。

\[n!=\sum_{k=0}^n\binom nkd_k \]

但是这个式子带 \(\sum\),不优雅。

\[\begin{aligned} d_n&=\sum_{k=0}^n(-1)^k\binom nk(n-k)!\\ &=\sum_{k=0}^n(-1)^k\frac{n!(n-k)!}{k!(n-k)!}\\ &=n!\sum_{k=0}^n\frac{(-1)^k}{k!}\\ \end{aligned} \]

对 \(e^{-1}\) 泰勒展开。

\[e^{-1}=\sum_{k=0}^\infty\frac{(-1)^k}{k!} \]

那么 \(e^{-1}n!-d_n\) 就可以计算了。

\[\begin{aligned} &e^{-1}n!-d_n\\ &=n!(\sum_{k=0}^\infty\frac{(-1)^k}{k!}-\sum_{k=0}^n\frac{(-1)^k}{k!})\\ &=n!\sum_{k=n+1}^\infty\frac{(-1)^k}{k!}\\ &=n!\sum_{k=0}^\infty\frac{(-1)^{n+k+1}}{(n+k+1)!}\\ &=(-1)^{n+1}n!\sum_{k=0}^\infty\frac{(-1)^k}{(n+k+1)!}\\ &=(-1)^{n+1}\sum_{k=0}^\infty(-1)^k\frac{n!}{(n+k+1)!}\\ \end{aligned} \]

对于 \(i\) 为奇数,有:

\[0<\frac{n!}{(n+i)!}-\frac{n!}{(n+i+1)!}<\frac{n!}{(n+i)!}<\frac1{n^i} \]

\[0<\sum_{k=0}^\infty(-1)^k\frac{n!}{(n+k+1)!}<\sum_{i=0}^\infty\frac1{n^{2i+1}}=\frac n{n^2-1} \]

所以把这个式子带入

\[\begin{aligned} 0<\sum_{k=0}^\infty(-1)^k\frac{n!}{(n+k+1)!}<\frac n{n^2-1}\\ 0<|(-1)^{n+1}\sum_{k=0}^\infty(-1)^k\frac{n!}{(n+k+1)!}|<(-1)^{n+1}\frac n{n^2-1}\\ 0<|e^{-1}n!-d_n|<\frac n{n^2-1}\\ \end{aligned} \]

当 \(n\ge3\) 时,\(\frac n{n^2-1}<\frac12\) 成立,所以 \(0<|e^{-1}n!-d_n|<\frac12\)。
当 \(n=1\) 或 \(n=2\) 时,\(0<|e^{-1}n!-d_n|<\frac12\) 经计算,也成立。
所以 \(d_n\) 就是 \(e^{-1}n!\) 四舍五入,也就是 \(\lfloor e^{-1}n!+\frac12\rfloor\)。
由此,\(\lim\limits_{n\to\infty}\frac{d_n}n=\frac1e\)。

标签:infty,aligned,frac,sum,下标,错排
From: https://www.cnblogs.com/bxjz/p/18006722/derangement

相关文章

  • [GDKOI2023]错排
    [GDKOI2023提高组]错排题目描述小X最近学习了错排问题,于是开始思考一个关于它的变种问题:有多少个长度为\(n\)的排列\(p\),满足对于\(i\lem\)的位置满足\(p_i>m\),且对于所有位置\(i\)都满足\(p_i\nei\)?小X一共想出了\(T\)个这样的问题,你能告诉他每个问题......
  • 小景的Dba之路--impdp导入数据问题报错排查总结
    小景最近在工作中遇到了一个问题,用impdp做数据导入的时候,有以下报错,下面是问题排查过程:首先看到了ORA-01950:noprivilegesontablespace‘PUBDATA’这个报错,小景想到了以下原因:权限问题:ORA-01950错误表示用户没有在PUBDATA表空间上的特定对象的权限。这可能是由于数据库权......
  • 圆排列、错排列例题
    本篇最初的产生原因是因为他们本身没有模板题,而练习他们的渠道少之又少,故进行一些查找和整理。(有新发现随时更新……)错排列P1595信封问题(普及-)就是个纯板子P3182[HAOI2016]放棋子(提高+/省选-)考场上遇到这道题可能会迟疑,但本身也是纯纯板子(看题解貌似要高精度?)圆排列等......
  • kubenetes 报错排查
    1.报code=Unknowndesc=failedtogetsandboxip:checknetworknamespaceclosed:removenetns:unlinkat/var/run/netns/cni-2502ee8a-9f06-2a44-66c6-59e2a7a277f9:deviceorresourcebusy解决方案:seecode=Unknowndesc=failedtogetsandboxip:chec......
  • 2023-9-20交易日志报错排查分析
    1、下单失败:名词解释:NOTIONAL名义价值来源:https://binance-docs.github.io/apidocs/spot/cn/#cc81fff589名义价值过滤器(NOTIONAL)定义了订单在一个交易对上可以下单的名义价值区间.applyMinToMarket定义了minNotional是否适用于市价单(MARKET)applyMaxToMarket定义了......
  • 【DSY 4484】矩阵 题解(带限错排)
    DSY传送门。(带限制)错排问题。神仙题。Solution根据题目的问法,发现我们只想统计比给定矩阵\(A\)小的矩阵,记这个矩阵为\(B\)。显然,\(B\)的第\(i\)行一定从某个位置开始小于\(A\)的第\(i\)行,且前面的内容和\(A\)都是一样的。所以我们只需要枚举这个“开始变小”......
  • hdu2068 RPG的错排(错排)
    思路:我们定义f(n)为n个人抽到的情况总数。对于第n个人,他要不抽中自己,即要抽中其他n-1个人,有n-1种可能,接下来讨论下,如果第n个人它抽中的人也抽中了第n个人,那么有f(n-2)种情况,如果第n个人抽中的人没有抽中第n个人,那么有f(n-1)可能,所以f(n)=(n-1)*(f(n-1)+f(n-2))。      ......
  • 【ACM组合数学 | 错排公式】写信
    题目链接:https://ac.nowcoder.com/acm/contest/54484/B题意很简单,但是数据范围偏大。错排公式首先来推导一下错排公式:$$D(n)=n!\sum_{k=0}^{n}\frac{(-1)^k}{k!}$$设一个函数:$$S_i表示一个排列中p_i=i的方案数$$那么我们可以知道:$$D(n)=n!-|\cup_{i=1}^{n}S_i|$$......
  • 【ACM组合数学 | 错排公式】写信
    题目链接:https://ac.nowcoder.com/acm/contest/54484/B题意很简单,但是数据范围偏大。错排公式首先来推导一下错排公式:\[D(n)=n!\sum_{k=0}^{n}\frac{(-1)^k}{k!}\]设一个函数:\[S_i表示一个排列中p_i=i的方案数\]那么我们可以知道:\[D(n)=n!-|\cup_{i=1}^{n}S_i|\]......
  • 错排数
    定义考虑一个有\(n\)个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。\(n\)个元素的错排数记为\(D_n\)。对于情......