组合数学之容斥原理

组合数学之容斥原理组合数学之容斥原理在组合数学中 容斥是常常被用到的 我们总用容斥求解一些带有条件的组合数 容斥原理 具有性质 A 和性质 B 的元素个数等同于具有性质 A 的个数和具有性质 B 的个数的和再减去同时具有性质 A 和性质 B 的元素的个数 数学公式表示为 A B A B A B 图形表示为其中黄色区域就是我们所求 同样以此类推对于三个性质来说其数学公式为 A B C A B C

在组合数学中,容斥是常常被用到的,我们总用容斥求解一些带有条件的组合数。

  • 容斥原理:具有性质A和性质B的元素个数等同于具有性质A的个数和具有性质B的个数的和再减去同时具有性质A和性质B的元素的个数。
    数学公式表示为 |A∪B|=|A|+|B|-|A∩B|。
    图形表示为这里写图片描述
    其中黄色区域就是我们所求。
    同样以此类推对于三个性质来说其数学公式为|A∪B∪C|=|A|+|B|+|C|-|A∩B|-|A∩C|-|B∩C|+|A∩B∩C|
    为什么要加上最后那个呢?因为在减的过程中多减了一个。




  • 对于容斥原理来说比较常用的方法为递归法和二进制枚举法,二进制枚举的方法最大的好处是枚举出所有元素的子集。假设一个集合的元素有m个,则对于m长的二进制数来说就有m个1或0的位置,对于每一个1
    -就对应一个元素,整个二进制枚举完就是所有子集,从0到2^m就行。
  • 递归法则是利用dfs的思想进行搜索,检索每一种方案进行容斥。由于每一种题都有不同的搜索方法,没用统一的模板,就不弄代码了。
  • 在这其中都是奇数个性质加偶数个性质减,而如果所求的性质是相反的性质,则用总数减去。
  • 容斥原理开着简单,实际非常复杂,每一道题都用不同的性质容斥,但最终的思想是不变的,多做一些题就会慢慢积累经验最终由一个好的思想。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233815.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 金蝶K3 WISE所有单据数据库内码及描述对照表[通俗易懂]

    金蝶K3 WISE所有单据数据库内码及描述对照表[通俗易懂]FTableIDFTableNameFDescriptionFTableNote0t_VoucherGroup凭证字表凭证的收付转等分类字1t_VoucherEntry凭证分录表凭证分录2t_Voucher凭证表凭证3t_User系统用户信息表系统用户信息表4t…

    2022年9月21日
    3
  • python中main的含义及用法_python main函数有什么用

    python中main的含义及用法_python main函数有什么用原博文2020-03-2720:25−**什么场景下会有main函数?**当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。**main函数的作用?**__name__==’__main__’是Python的main函数入口。并非说,加入这句才能使用pythonxxx…相关推荐2019-12-1922:31−Pyt…

    2022年10月9日
    4
  • (RegionProposal Network)RPN网络结构及详解[通俗易懂]

    (RegionProposal Network)RPN网络结构及详解[通俗易懂]RPN(RegionProposalNetwork)区域生成网络Faster-RCNN的核心。在这里整理。1.anchors。特征可以看做一个尺度51*39的256通道图像,对于该图像的每一个位置,考虑9个可能的候选窗口:三种面积{128,256,512}×{128,256,512}×三种比例{1:1,1:2,2:1}{1:1,1:2,2:1}。这些候选窗口称为anchors…

    2022年6月23日
    114
  • idea添加tomcat插件_tomcat配置idea

    idea添加tomcat插件_tomcat配置idea配置tomcat插件,一直报错,自己一点儿一点儿排错,一点儿一点儿,心态都要奔溃了,搜索了很多的教程都不行,花了34个小时,终于可以了,下面是错误信息,还有另一个但是我没来的及复制另一个错误信息,抱歉。错误信息:严重:Errorconfiguringapplicationlistenerofclassorg.springframework.web.context.ContextLoaderListenerjava.lang.ClassNotFoundException:org.sp

    2022年10月10日
    4
  • Cubieboard 架设Git服务器

    Cubieboard 架设Git服务器如果你现在用的是Cubieboard或者树莓派卡片式电脑,可以查看本文之前,学习前面的四个教程,它可能会对你非常有帮助。如果你是普通的Linux用户或者LinuxVPS、Linux独立服务器等,可以直接跳过查看本文。教程一Cubieboard安装Linux系统教程二CubieboardLinux服务器配置教程三CubieboardLinux服务器安装L…

    2022年7月22日
    7
  • Perl正则表达式讲解「建议收藏」

    Perl正则表达式讲解「建议收藏」9.3.1原则1正则表达式有三种形式:匹配、替换和转换。在表 9-1 中列有三种正则表达式运算符。接下来对每一个表达式给出详尽解释。匹配:m//这种形式表明在//内部的正则表达将用于匹配 = ~或 !~左边的标量。为了语法上的简化用//,略去m。替换:s///这种形式表明正则表达式将被文本替换,为了语法的简化用//略去s。·转换:tr///这种形式包含一系列的字符

    2022年5月31日
    71

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号