IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 容斥定理与错排问题 -> 正文阅读

[数据结构与算法]容斥定理与错排问题

关于错排问题

给定 n n n 个数字,求数字 1 , 2 , ? ? , n 1,2,\cdots,n 1,2,?,n 不排列在第 1 , 2 , ? ? , n 1,2,\cdots,n 1,2,?,n 上的排列数量称为错排问题。

容斥定理

X 1 , ? ? , X n X_1,\cdots,X_n X1?,?,Xn? 为可数集合,那么 ∣ X 1 ∪ ? ∪ X n ∣ |X_1\cup\cdots\cup X_n| X1??Xn?
∣ X 1 ∪ ? ∪ X n ∣ = ∑ k = 1 , 1 ? i 1 < ? < i k ? n n ( ? 1 ) k + 1 ∣ X i 1 ∩ ? ∩ X i k ∣ |X_1\cup\cdots\cup X_n|=\sum_{k=1,1\leqslant i_1<\cdots<i_k\leqslant n}^n(-1)^{k+1}|X_{i_1}\cap\cdots\cap X_{i_k}| X1??Xn?=k=1,1?i1?<?<ik??nn?(?1)k+1Xi1???Xik??

求解错排问题

给定 n n n 个数字,我们令
Y i : = { Permutations?that?number? i ?is?not?at?the?position? i } Y_i:=\{\text{Permutations that number }i\text{ is not at the position }i\} Yi?:={Permutations?that?number?i?is?not?at?the?position?i}

例如给定 n = 3 n=3 n=3,我们有
Y 1 = { 213 , 312 , 231 , 321 } Y_1=\{213,312,231,321\} Y1?={213,312,231,321}

根据错排问题的描述,从 n n n 个数字的全排列中去除一个数字排对的情况、两个数字排对的情况、……、 n n n 个数字排对的情况就得到了错排问题的全部可能排列。那么 n n n 数情况下错排问题的解 a n a_n an? 即为
a n = n ! ? ∣ Y 1 ∪ ? ∪ Y n ∣ \begin{aligned} a_n&=n!-|Y_1\cup\cdots\cup Y_n|\\ \end{aligned} an??=n!?Y1??Yn??

显然对于互不相等的 1 ? i 1 < ? < i k ? n 1\leqslant i_1<\cdots<i_k\leqslant n 1?i1?<?<ik??n,有
∣ Y i 1 ∩ ? ∩ Y i k ∣ = C n k ( n ? k ) ! |Y_{i_1}\cap\cdots\cap Y_{i_k}|=C_n^k(n-k)! Yi1???Yik??=Cnk?(n?k)!

k k k 个数字排对,其余数字随意排列得到的排列数量。那么有
a n = n ! ? ∣ Y 1 ∪ ? ∪ Y n ∣ = n ! ? ∑ k = 1 n ( ? 1 ) k + 1 C n k ( n ? k ) ! = n ! ? ∑ k = 1 n ( ? 1 ) k + 1 n ( n ? 1 ) ? ( n ? k + 1 ) k ! ( n ? k ) ! = n ! ? n ! ∑ k = 1 n ( ? 1 ) k + 1 k ! = n ! ( 1 + ∑ k = 1 n ( ? 1 ) k k ! ) = n ! ∑ k = 0 n ( ? 1 ) k k ! \begin{aligned} a_n&=n!-|Y_1\cup\cdots\cup Y_n|\\ &=n!-\sum_{k=1}^n(-1)^{k+1}C_n^k(n-k)!\\ &=n!-\sum_{k=1}^n(-1)^{k+1}\frac{n(n-1)\cdots(n-k+1)}{k!}(n-k)!\\ &=n!-n!\sum_{k=1}^n\frac{(-1)^{k+1}}{k!}\\ &=n!\left(1+\sum_{k=1}^n\frac{(-1)^{k}}{k!}\right)\\ &=n!\sum_{k=0}^n\frac{(-1)^k}{k!} \end{aligned} an??=n!?Y1??Yn?=n!?k=1n?(?1)k+1Cnk?(n?k)!=n!?k=1n?(?1)k+1k!n(n?1)?(n?k+1)?(n?k)!=n!?n!k=1n?k!(?1)k+1?=n!(1+k=1n?k!(?1)k?)=n!k=0n?k!(?1)k??

为了便于求解,给出 a n a_n an? 的递推。对于 n ? 1 n\geqslant 1 n?1,我们有
a n ? n a n ? 1 = n ! ( ? 1 ) n n ! = ( ? 1 ) n ? a n = n a n ? 1 + ( ? 1 ) n a_n-na_{n-1}=n!\frac{(-1)^n}{n!}=(-1)^n\Rightarrow a_n=na_{n-1}+(-1)^n an??nan?1?=n!n!(?1)n?=(?1)n?an?=nan?1?+(?1)n

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:01:27  更:2022-04-22 19:03:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:21:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码