码迷,mamicode.com
首页 > 其他好文 > 详细

错排问题

时间:2014-09-25 09:53:38      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:http   ar   sp   问题   on   c   html   ad   ef   

科普向~

最近总是看到错排,感觉很有趣的样子。。。

错排问题是指:求1~n的排列P,使得 P≠ i 的方案数。

递推

设f[i]表示i个数的错排方案数,称有k个数在自己位置上的错排为k不动排。对于i-1个数已经形成的错排,添加一个i之后,可以把i与前面i-1个数中的任意一个交换,使得成为错排;对于有一个数不满足错排的方案数,显然等于f[i-1]×i,那么对于i-1个数已经形成的1不动排,可以把i与前面排在自己位置上的那个数交换,使得成为错排;由于1~n的排列={错排,1不动排,2不动排,...,n不动排},而上述交换i和前面一个数的方法显然可以通过1~i-1的全排列生成1~i的全排列,但是满足交换一个数是错排的,只有上述两种情况,所以f[i]=(i-1)×(f[i-1]+f[i-2])。至于通项公式没必要去推吧。。。(其实我不会)

容斥原理

先来证明容斥原理吧。。

注:下述大写字母都代表集合

容斥原理(其实是容斥原理的直接推论,但是貌似比本源的容斥原理更常用,本源的容斥原理是关于集合并的):
\[\left| S_1\cup S_2 \cup S_3 \cup ... \cup S_n\right|=\sum_{i=1}^n\left| S_i\right|+(-1)\sum_{0<i<j\le n}^n\left| S_i \cap S_j \right|+\sum_{0<i<j<k\le n}^n\left| S_i \cap S_j \cap S_k \right|+...+(-1)^{n+1}\left| S_1\cap S_2 \cap S_3 \cap ... \cap S_n \right|\]

证明(组合恒等式法):

设\(C_n^k=\binom{n}{k}\)表示组合数,\(A_n^k\)表示排列数。

引理(组合恒等式):
\[\sum_{i=0}^k(-1)^{i}C_k^i=0\]

证明:由\((1-1)^k\)展开立得。

我们只需证明,在左边中的元素\(x\)在右边只出现一次即可。不妨设\(x\subset S_1,x\subset S_2,x\subset S_3,...,x\subset S_k\),那么\(x\)在右边第一项中出现的次数等于\(C_k^1\),在第二项中等于\(C_k^2\),在第三项中等于\(C_k^3\),直到第k项等于\(C_k^k\),之后的项中不再有\(x\)出现,而根据引理,我们知道
\[\sum_{i=1}^k(-1)^{i+1}C_k^i=1\]

\(x\)在右边也只出现了一次,所以成立。得证。

回到错排问题上来。由容斥原理显然,错排数=全排列数-1不动排数+2不动排数-3不动排数+...+(-1)nn不动排数。设D表示错排数,所以
\[D=A_n^n-A_n^{n-1}+A_n^{n-2}+...+(-1)^{n}A_n^0 = n!\left\{ \frac{(-1)^2}{2!}+\frac{(-1)^3}{3!}+...+\frac{(-1)^n}{n!} \right\} =n!\sum_{r=2}^n \frac{(-1)^r}{r!}\]。是为上面那个递推式的通项。

二项式反演

先挖个坑。。要迟到了。。。

留几个好玩的链接:

http://www.sec.ntnu.edu.tw/Monthly/102(356-365)/365-PDF/03-102036-%E6%8E%92%E5%AE%B9%E5%8E%9F%E7%90%86%E5%8F%8A%E6%87%89%E7%94%A8%E8%88%89%E4%BE%8B(%E6%9C%88%E5%88%8AOK).pdf

http://www.yau-awards.org/paper/%E7%AC%AC%E5%9B%9B%E5%B1%8A%E4%B8%98%E6%88%90%E6%A1%90%E4%B8%AD%E5%AD%A6%E7%BA%AF%E6%95%B0%E5%AD%A6%E5%A5%96%E8%B5%9B%E5%8C%BA%E8%AE%BA%E6%96%87/E/E09.%E5%85%B3%E4%BA%8E%E9%94%99%E6%8E%92%E9%97%AE%E9%A2%98%E7%9A%84%E6%80%9D%E8%80%83%E4%B8%8E%E8%AE%A8%E8%AE%BA.pdf

http://wenku.baidu.com/view/d298820879563c1ec5da7120.html

 

错排问题

标签:http   ar   sp   问题   on   c   html   ad   ef   

原文地址:http://www.cnblogs.com/hzf-sbit/p/3991973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!