容斥原理应用之:错位排列

先解释一下什么是错位排列,原先的值不在原先的位置上,就是错误排列,比如下面这两个数组:

<?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​]

容斥原理应用之:错位排列相关推荐

  1. NYOJ 912 领帽子(全错位排列)

    领帽子 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 有n个人在参加晚会时寄存了自己的帽子.可是保管人忘记放寄存号,当每个人领取帽子时,他只能随机选择一顶帽子交给寄存人 ...

  2. bzoj 4563 [Haoi2016]放棋子 错位排列+高精度

    题面 题目传送门 解法 可以直接将所有1全部放置在主对角线上,这样并不会影响答案 然后就是一个比较简单的错位排列了 需要高精度 代码 #include <bits/stdc++.h> us ...

  3. 广东工业大学2017新生赛(决赛)-网络同步赛 1007 白色相簿的季节【全错位排列】

    白色相簿的季节 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submi ...

  4. 全错位排列 配对概率问题

    全错位排列    先看下面例子: 例1    5个人站成一排,其中甲不站第一位,乙不站第二位,共有多少种不同的站法. 这个问题在高中很多参考书上都有,有几种解法,其中一解法是用排除法: 先考虑5个有的 ...

  5. LeetCode-Python-634. 寻找数组的错位排列(数学 + 错排公式)

    在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列. 给定一个从 1 到 n 升序排列的数组,你可以计算出总共有多少个不同的错位排列吗? 由于答案可能非常大,你只需要 ...

  6. 错位排列——杨子曰数学

    错位排列--杨子曰数学 超链接:数学合集 首先,什么是错位排列? 就是你有1号物品,2号物品,3号物品--,它们都有自己对应的箱子:1号箱,2号箱,3号箱-- 现在你把物品放到箱子里,结果一个物品也没 ...

  7. 错位排列超详解(组合数学)

    错位排列 全错位排列最经典的问题是装错信封问题. 我们把信封问题转换一下: 对于1−n1-n1−n 共n个数字组成的序列中,每个数字仅出现一次,求每个数字跟位置完全不对应的总方案数. 对于第一个位置上 ...

  8. 全错位排列与部分错位排列(组合数学)

    全错位排列 基本简介 "装错信封问题"是由当时最有名的数学家约翰·伯努利(Johann Bernoulli,1667-1748)的儿子丹尼尔·伯努利(DanidBernoulli, ...

  9. 经典算法题:全错位排列问题

    问题描述 这是一个很经典的数学问题:有一个人写了n封信件,对应n个信封,然而粗心的秘书却把所有信件都装错了信封,那么一共有多少种装错的装法? 数学抽象 这个问题可抽象为以下一个数学问题:已知一个长度为 ...

最新文章

  1. Python-TXT文本操作
  2. centos 的关机命令
  3. c# groupbox大小_【已解决】C#中使得控件随着WinForm窗体的大小改变而自动变化
  4. 信息检索IR评价中常见的评价指标-MAP\NDCG\ERR\P@10等
  5. ARM32/ARM64函数调用规则
  6. 百度地图API学习之路(1)
  7. mysql 关闭严格_mysql关闭严格模式
  8. 《自己动手写操作系统》(一)
  9. es修改排序_ElasticSearch自定义排序(转载)
  10. eclipse安装教程_eclipse安装教程jdk
  11. PdfSharp -- 根据PDF模板导出PDF
  12. vs code里面的less插件一直报错_ipad4现在怎么登微信?一直显示微信版本过低怎么办...
  13. es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别
  14. vue2.0 使用 swiper 实现PC端卡片左右虚拟slides滑动
  15. python中class什么意思_python-classmethod在此代码中做什么?
  16. Android权限说明
  17. 如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践
  18. 一文读懂Lybra Finance:LSD赛道新稳定币协议
  19. 淘宝网及新浪网等几大官方IP查询API接口地址库的调用及使用方法教程
  20. rust雪山矿洞几个入口_方舟生存进化手游雪山大矿洞介绍 雪山大矿洞通关攻略_游侠手游...

热门文章

  1. 将vue文档下载到本地预览
  2. 软件测试笔试题及答案
  3. 微信小程序项目实例——备忘录
  4. 隐藏与显示macos桌面文件
  5. 2021年轻人下班行为报告:我下班了,却又没下班
  6. 微信小程序表单提交php存储,微信小程序实现form表单本地储存数据
  7. 深入学习Gremlin(22):遍历终止terminal
  8. 太原市山大附中2021年高考成绩查询,【高考喜报】2019年太原市高中学校高考喜报(持续更新中……)...
  9. sparkSQL练习 ( Parquet数据、parquet元数据合并、json数据的操作)
  10. 【Spring AOP(2)篇】原理及两种实现方式(cglibjdk动态代理)