【数学归纳法 组合数学】容斥原理

问题提出

有n个条件,要求不重复统计满足一到n个条件的所有可能数。

容斥原理

要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。
∑ i : 1 m ( − 1 ) i + 1 \sum_{i:1}^m(-1)^{i+1} i:1m(1)i+1 ( m i ) m \choose i (im)cnt[i]
cnt[m] 记录所有 满足m个条件的可能数。

下面来证明:
其本质是:集合求并。

贡献法

针对某个元素(某种情况),它在m个集合中(符合m个条件):
统计符合m个条件的情况数是:它被统计 ( m m ) m \choose m (mm)次。
统计符合m-1个条件的 ⋯ \cdots ( m m − 1 ) m \choose m-1 (m1m)
⋮ \vdots
统计符合1个条件的 ⋯ \cdots ( m 1 ) m \choose1 (1m)

它应该被统计一次,下面来证明:
∑ i : 1 m ( − 1 ) i + 1 \sum_{i:1}^m(-1)^{i+1} i:1m(1)i+1 ( m i ) m \choose i (im) ≡ 1 \equiv 1 1
∑ i : 1 m ( − 1 ) i + 1 \sum_{i:1}^m(-1)^{i+1} i:1m(1)i+1 ( m i ) m \choose i (im) = - ∑ i : 1 m ( − 1 ) i \sum_{i:1}^m(-1)^{i} i:1m(1)i ( m i ) m \choose i (im) = Y
-Y+1 = ∑ i : 0 m ( − 1 ) i \sum_{i:0}^m(-1)^i i:0m(1)i ( m i ) m \choose i (im)
根据二项式定理:-Y+1== (-1+1)m = 0
→ \rightarrow Y =1

相关知识点

帕斯卡法则

从n个不同的物品中选择m个,我读书的时候,是如下表示的:
C n m _n^m nm ,latex公式是如下表示的: ( n m ) n \choose m (mn)
帕斯卡法则: ( n m ) n \choose m (mn) = ( n − 1 m ) {n-1} \choose m (mn1) + ( n − 1 m − 1 ) {n-1} \choose m-1 (m1n1)
分别对应n选择m的两种情况:
第一个物品没选择 和第一个物品选择。

二项式定理

二项式定理(英语:binomial theorem),又称牛顿二项式定理。
( x + y ) n = ∑ i : 0 n ( n i ) x i y n − i (x+y)^n= \sum_{i:0}^n{n \choose i}x^iy^{n-i} (x+y)n=i:0n(in)xiyni
下面用数学归纳法证明。
当n=1是
∑ i : 0 1 ( n i ) x i y n − i = x 0 y 1 + x 1 y 0 = y + x \sum_{i:0}^1{n \choose i}x^iy^{n-i}=x^0y^1+x^1y^0=y+x i:01(in)xiyni=x0y1+x1y0=y+x 得证。
下面来证明n=m成立,则n=m+1也成立。
( x + y ) m + 1 = x ( x + y ) m + y ( x + y ) m = x ∑ j : 0 m ( m j ) x j y m − j + y ∑ k : 0 m ( m k ) x k y m − k 根据假设 = ∑ j : 0 m ( m j ) x j + 1 y m − j + ∑ k : 0 m ( m k ) x k y m − k + 1 x 、 y 提到累加内 = ⋯ ∑ k : 1 m ( m k ) x k y m − k + 1 + y m + 1 提取 k = = 0 ,式一 = ∑ k : 1 m + 1 ( m k − 1 ) x k y m − k + 1 ⋯ 设 j = k − 1 ,及 k = j + 1 = ∑ k : 1 m ( m k − 1 ) x k y m − k + 1 + x m + 1 ⋯ 提取 k = = m + 1 式二 = ∑ k : 1 m ( ( m k − 1 ) + ( m k ) ) x k y m − k + 1 + ⋯ 式一式二的累加部分结合 = ∑ k : 1 m ( m + 1 k ) x k y m − k + 1 + ⋯ 帕斯卡法则 式一余下的部分就是 k = = 0 , 式二余下的部分就是 k = m + 1 得证 (x+y)^{m+1}=x(x+y)^m+y(x+y)^m \\ = x\sum_{j:0}^m {m \choose j} x^jy^{m-j}+y\sum_{k:0}^m{m \choose k}x^ky^{m-k} \quad 根据假设 \\ = \sum_{j:0}^m{m \choose j}x^{j+1}y^{m-j}+\sum_{k:0}^m{m \choose k}x^ky^{m-k+1} \quad x、y提到累加内 \\ = \cdots \sum_{k:1}^m{m \choose k}x^ky^{m-k+1}+y^{m+1} \quad提取k==0,式一 \\ =\sum_{k:1}^{m+1}{m \choose k-1}x^ky^{m-k+1} \cdots \quad 设j=k-1,及k=j+1 \\ =\sum_{k:1}^{m}{m \choose k-1}x^ky^{m-k+1}+ x^{m+1} \cdots \quad 提取k==m+1 式二\\ =\sum_{k:1}^{m}({m \choose k-1}+{m \choose k})x^ky^{m-k+1} +\cdots \quad 式一式二的累加部分结合\\ =\sum_{k:1}^{m}{m+1 \choose k}x^ky^{m-k+1} +\cdots \quad 帕斯卡法则 \\ 式一余下的部分就是k==0,式二余下的部分就是k=m+1 得证 (x+y)m+1=x(x+y)m+y(x+y)m=xj:0m(jm)xjymj+yk:0m(km)xkymk根据假设=j:0m(jm)xj+1ymj+k:0m(km)xkymk+1xy提到累加内=k:1m(km)xkymk+1+ym+1提取k==0,式一=k:1m+1(k1m)xkymk+1j=k1,及k=j+1=k:1m(k1m)xkymk+1+xm+1提取k==m+1式二=k:1m((k1m)+(km))xkymk+1+式一式二的累加部分结合=k:1m(km+1)xkymk+1+帕斯卡法则式一余下的部分就是k==0,式二余下的部分就是k=m+1得证

扩展阅读

视频课程

有效学习:明确的目标 及时的反馈 拉伸区(难度合适),可以先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

相关下载

想高屋建瓴的学习算法,请下载《喜缺全书算法册》doc版
https://download.csdn.net/download/he_zhidan/88348653

我想对大家说的话
闻缺陷则喜是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子签名在人力资源中的应用:让HR工作更高效

人力资源(HR)行业是电子签领域的重要应用之一,它可以在以下场景中使用电子签: 1. 在招聘流程中,HR部门可以利用电子签名工具来完成与招聘候选人之间的任何文件签署操作。例如,维护人才库数据库、简历、面试…

HTML不常用的文本标签

1.标签如下&#xff1a; 代码及相关内容 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>不常用的文…

中医药性笔记

目录 当归黄芪党参白术甘草茯苓半夏陈皮升麻柴胡 当归 补血。 当归&#xff0c;腾讯医典 黄芪 土金之药。 补中气的同时补肺气。益卫固表、利水消肿、 腾讯医典黄芪 党参 土金之药。健脾益肺&#xff0c;生津养血。 党参补气之力弱于人参、用于脾肺气虚的轻症。 党…

[2024更新]如何从Android恢复已删除的相机照片?

相信大家都经历过Android手机误删相机图片的经历。您是否正在寻找一种可行的方法来挽救这些丢失的照片&#xff1f;如果这是你迫切想解决的问题&#xff0c;那么这篇文章绝对可以帮助你。然而&#xff0c;与其考虑如何从Android恢复已删除的相机照片&#xff0c;我们更愿意建议…

ETL简介以及使用ETL(Kettle)进行数据接入的具体例子

目录 ETL介绍 ETL简介 ETL包含的三部分 ETL基本概念 ETL资源库 ETL变量 业务表梳理以及接入规划 数据接入流程 业务表梳理 ETL任务规范 接入规划 数据接入中的方便工具 具体例子 导出生产表信息 1、ORACLE 2、MYSQL ETL数据增量抽取任务开发 1、ORACLE通用流程…

Linux 网络编程

引入: 进程间的通信 - 特点: 依赖 Linux内核. --> 缺陷: 无法多机通信 多机通信 -- 比如 Android IOS Linux之间的通信组合 网络编程: 1.地址: a.IP地址 b.端口号 2.数据: 需要协议传输协议(数据格式)&#xff08;TCP UDP HTTP&#xff09; &#xff0c;其他协议&am…

2024最新Java面试宝典(史上最全,BAT大厂面试必备,用心看完这一篇就够了!)

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c…

20240416,深拷贝浅拷贝,对象初始化和清理,对象模型和THIS指针

哈哈哈乌龟越狱了 目录 2.5 深拷贝&浅拷贝 2.6 初始化列表 2.7 类对象作为类成员 2.8 静态成员 2.9 成员变量和成员函数分开存储 2.10 THIS指针的用途 2.11 空指针访问成员函数 2.12 COSNT修饰成员函数 2.5 深拷贝&浅拷贝 浅拷贝&#xff1a;简单的赋值拷贝…

二次封装el-carousel

我们创建了一个名为MyCarousel的组件,它接受el-carousel的一些常用属性作为props,并默认提供了一些值。我们还通过setup函数返回了所有props,以便它们可以在模板中被使用。 1.MyCarousel.vue组件 <!-- 轮播图片 --> <template><div class="carousel&q…

Django中的定时任务与后台任务队列的实践

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在Web开发中&#xff0c;处理定时任务和后台任务队列是很常见的需求。Django作为一个功能强…

vscode中使用rust的跳转定义时,rust-analyzer报错“未找到定义”,如何解决?

本文是关于错误解决的一个记录&#xff0c;如果你在使用vscode编写rust程序的过程中也遇到同样的错误&#xff0c;不妨一试。 我遇到的错误是&#xff0c;在编写的rust程序中想要跳转到当前变量或者函数的定义处&#xff0c;但按下F12无法跳转&#xff0c;且提示“未找到xxx定…

LoggerFactory is not a Logback

错误信息 LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.SimpleLoggerFactory loaded from file:/D:/maven/repository/org/slf4j/slf4j-simple/1.7.26/slf…

MySQL学习笔记5——函数和索引

函数和索引 一、函数1、数学函数2、字符串函数3、条件判断函数 二、索引1、索引是什么2、单字段索引3、组合索引4、总结 一、函数 MySQL提供了很多功能强大&#xff0c;而且使用起来非常方便的函数&#xff0c;包括数学函数、字符串处理函数和条件判断函数等。 1、数学函数 …

Python网络数据抓取(3):Requests

引言 在这一部分&#xff0c;我们将探讨Python的requests库&#xff0c;并且利用这个库来进行网页数据抓取。那么&#xff0c;我们为何需要这个库&#xff0c;以及怎样利用它呢&#xff1f; requests库是广受大家欢迎的一个库&#xff0c;它是下载次数最多的。这个库使我们能够…

在windows系统安裝 SQL Server 版本的最低需求

針對對應您的作業系統所要安裝的 SQL Server 版本的最低需求 具体参考&#xff1a;Windows 作業系統的 SQL Server - SQL Server | Microsoft Learn

stable-diffusion-webui安装与使用过程中的遇到的error合集

stable-diffusion-webui1.9.2踩坑安装 1. 安装过程1.1 stable-diffusion-webui1.2 在win11或win10系统安装&#xff0c;需修改两个启动脚本1.2.1 修改webui-user.bat1.2.2 修改webui.bat 1.3 双击 webui-user.bat 启动脚本1.3.1 no module xformers. Processing without on fre…

电力调度自动化中智能电网技术的应用

电力调度自动化中智能电网技术的应用 在现代电网的现代化发展和电网重组工作中起着关键作用,由于此项技术开发时间短,目前还没有形成一个相对清晰的概念,但此技术在未来的电网发展工作中的地位已得到了一些国家的认可。由于智能电网具有良好的兼容性以及交互性等优势,一经推出就…

解决方案 SHUTDOWN_STATE xmlrpclib.py line: 794 ERROR: supervisor shutting down

Supervisor操作命令 重新加载 Supervisor 配置&#xff1a; sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl restart all这将重新读取 Supervisor 的配置文件&#xff0c;更新进程组&#xff0c;然后重启所有进程。 查看 Supervisor 日志&#xff1…

3.SpringCloud版本

1.SpringCloud与SpringBoot之间版本对应 2.服务拆分的注意事项 1.不同微服务&#xff0c;不要重复开发相同业务。 2.微服务的数据独立&#xff0c;每个微服务都有自己独立的数据库&#xff0c;不要访问其他微服务的数据库。 3.微服务可以将自己的的业务暴露为接口&#xff…

婚恋相亲红娘牵线系统源码支持微信小程序+微信公众号+H5+APP社交交友系统搭建,扩展你的社交影响力与人脉资源

当代年轻人晚婚晚育甚至不愿意结婚不愿意相亲等问题愈来愈严重了&#xff0c;但是如果抛开表现去追求本质的话&#xff0c;其实不难发现年轻人们还是会喜欢去找一些志同道合或者聊得来的异性朋友交流&#xff0c;从线上发展到线下的一个流程。 核心系统核心体系是恋爱小贴士、…