容斥原理应用之:错位排列
容斥原理应用之:错位排列
先解释一下什么是错位排列,原先的值不在原先的位置上,就是错误排列,比如下面这两个数组:
<?php$array=[0=>0,1=>1,2=>2,3=>3
];
// 这个数组就是错位排列
$array2=[0=>1,1=>2,2=>3,3=>0
];
// 这个数组不是错位排列,0还在它之前的位置上
$array3=[0=>0,1=>2,2=>3,3=>1
];
这里需要证明下面的公式:
n元素集合的错位排列数是:Dn=n![1−11!+12!−13!⋯+(−1)n1n!]n元素集合的错位排列数是:\\ D_n=n!\left[1- \frac{1}{1!}+\frac{1}{2!}-\frac{1}{3!}\cdots+(-1)^n \frac{1}{n!} \right] n元素集合的错位排列数是:Dn=n![1−1!1+2!1−3!1⋯+(−1)nn!1]
这里需要借用到这里的映上函数统计时的思路:
总的排列数为:n!令Pi代表集合中的bi元素是在原先的位置。于是根据容斥原理:N(P1′P2′⋯Pn′)=n!−C(n,1)(n−1)!+C(n,2)(n−2)!−C(n,3)(n−3)!⋯+(−1)nC(n,n)⋅1=n!−n!(n−1)!1!⋅(n−1)!+n!(n−2)!2!⋅(n−2)!⋯(−1)n⋅n!n!⋅1=n![1−11!+12!−13!⋯+(−1)n1n!]总的排列数为:n!\\ 令 P_i 代表集合中的 b_i 元素是在原先的位置。\\ 于是根据容斥原理:\\ N(P_1 \prime P_2 \prime \cdots P_n \prime)=n!-C(n,1)(n-1)!+C(n,2)(n-2)!-C(n,3)(n-3)! \cdots+(-1)^n C(n,n) \cdot 1\\ =n!-\frac{n!}{(n-1)!1!} \cdot (n-1)!+\frac{n!}{(n-2)!2!}\cdot(n-2)! \cdots (-1)^n \cdot \frac{n!}{n!} \cdot 1 \\ =n!\left[1- \frac{1}{1!}+\frac{1}{2!}-\frac{1}{3!}\cdots+(-1)^n \frac{1}{n!} \right] 总的排列数为:n!令Pi代表集合中的bi元素是在原先的位置。于是根据容斥原理:N(P1′P2′⋯Pn′)=n!−C(n,1)(n−1)!+C(n,2)(n−2)!−C(n,3)(n−3)!⋯+(−1)nC(n,n)⋅1=n!−(n−1)!1!n!⋅(n−1)!+(n−2)!2!n!⋅(n−2)!⋯(−1)n⋅n!n!⋅1=n![1−1!1+2!1−3!1⋯+(−1)nn!1]
容斥原理应用之:错位排列相关推荐
- NYOJ 912 领帽子(全错位排列)
领帽子 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 有n个人在参加晚会时寄存了自己的帽子.可是保管人忘记放寄存号,当每个人领取帽子时,他只能随机选择一顶帽子交给寄存人 ...
- bzoj 4563 [Haoi2016]放棋子 错位排列+高精度
题面 题目传送门 解法 可以直接将所有1全部放置在主对角线上,这样并不会影响答案 然后就是一个比较简单的错位排列了 需要高精度 代码 #include <bits/stdc++.h> us ...
- 广东工业大学2017新生赛(决赛)-网络同步赛 1007 白色相簿的季节【全错位排列】
白色相簿的季节 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submi ...
- 全错位排列 配对概率问题
全错位排列 先看下面例子: 例1 5个人站成一排,其中甲不站第一位,乙不站第二位,共有多少种不同的站法. 这个问题在高中很多参考书上都有,有几种解法,其中一解法是用排除法: 先考虑5个有的 ...
- LeetCode-Python-634. 寻找数组的错位排列(数学 + 错排公式)
在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列. 给定一个从 1 到 n 升序排列的数组,你可以计算出总共有多少个不同的错位排列吗? 由于答案可能非常大,你只需要 ...
- 错位排列——杨子曰数学
错位排列--杨子曰数学 超链接:数学合集 首先,什么是错位排列? 就是你有1号物品,2号物品,3号物品--,它们都有自己对应的箱子:1号箱,2号箱,3号箱-- 现在你把物品放到箱子里,结果一个物品也没 ...
- 错位排列超详解(组合数学)
错位排列 全错位排列最经典的问题是装错信封问题. 我们把信封问题转换一下: 对于1−n1-n1−n 共n个数字组成的序列中,每个数字仅出现一次,求每个数字跟位置完全不对应的总方案数. 对于第一个位置上 ...
- 全错位排列与部分错位排列(组合数学)
全错位排列 基本简介 "装错信封问题"是由当时最有名的数学家约翰·伯努利(Johann Bernoulli,1667-1748)的儿子丹尼尔·伯努利(DanidBernoulli, ...
- 经典算法题:全错位排列问题
问题描述 这是一个很经典的数学问题:有一个人写了n封信件,对应n个信封,然而粗心的秘书却把所有信件都装错了信封,那么一共有多少种装错的装法? 数学抽象 这个问题可抽象为以下一个数学问题:已知一个长度为 ...
最新文章
- Python-TXT文本操作
- centos 的关机命令
- c# groupbox大小_【已解决】C#中使得控件随着WinForm窗体的大小改变而自动变化
- 信息检索IR评价中常见的评价指标-MAP\NDCG\ERR\P@10等
- ARM32/ARM64函数调用规则
- 百度地图API学习之路(1)
- mysql 关闭严格_mysql关闭严格模式
- 《自己动手写操作系统》(一)
- es修改排序_ElasticSearch自定义排序(转载)
- eclipse安装教程_eclipse安装教程jdk
- PdfSharp -- 根据PDF模板导出PDF
- vs code里面的less插件一直报错_ipad4现在怎么登微信?一直显示微信版本过低怎么办...
- es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别
- vue2.0 使用 swiper 实现PC端卡片左右虚拟slides滑动
- python中class什么意思_python-classmethod在此代码中做什么?
- Android权限说明
- 如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践
- 一文读懂Lybra Finance:LSD赛道新稳定币协议
- 淘宝网及新浪网等几大官方IP查询API接口地址库的调用及使用方法教程
- rust雪山矿洞几个入口_方舟生存进化手游雪山大矿洞介绍 雪山大矿洞通关攻略_游侠手游...
热门文章
- 将vue文档下载到本地预览
- 软件测试笔试题及答案
- 微信小程序项目实例——备忘录
- 隐藏与显示macos桌面文件
- 2021年轻人下班行为报告:我下班了,却又没下班
- 微信小程序表单提交php存储,微信小程序实现form表单本地储存数据
- 深入学习Gremlin(22):遍历终止terminal
- 太原市山大附中2021年高考成绩查询,【高考喜报】2019年太原市高中学校高考喜报(持续更新中……)...
- sparkSQL练习 ( Parquet数据、parquet元数据合并、json数据的操作)
- 【Spring AOP(2)篇】原理及两种实现方式(cglibjdk动态代理)