容斥原理的证明_容斥原理三集合公式解释

容斥原理的证明_容斥原理三集合公式解释容斥原理的证明原链接地址容斥原理(翻译)-vici-C++博客       我们要证明下面的等式:                其中B代表全部Ai的集合         我们需要证明在Ai集合中的任意元素,都由右边的算式被正好加上了一次(注意如果是不在Ai集合中的元素,是不会出现在右边的算式中的)。         假设有一任意元素在k个A

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

容斥原理的证明

原链接地址

容斥原理(翻译) – vici – C++博客

       我们要证明下面的等式:

       容斥原理的证明_容斥原理三集合公式解释

         其中B代表全部Ai的集合

         我们需要证明在Ai集合中的任意元素,都由右边的算式被正好加上了一次(注意如果是不在Ai集合中的元素,是不会出现在右边的算式中的)。

         假设有一任意元素在kAi集合中(k>=1),我们来验证这个元素正好被加了一次:

         size(C)=1时,元素x被加了k次。

         size(C)=2时,元素x被减了C(2,k)次,因为在k个集合中选择2个,其中都包含x

         size(C)=3时,元素x被加了C(3,k)次。

         ……

         size(C)=k时,元素x被加/减了C(k,k)次,符号由sign(-1)^(k-1)决定。

         size(C)>k时,元素x不被考虑。

         然后我们来计算所有组合数的和。

         容斥原理的证明_容斥原理三集合公式解释

         由二项式定理,我们可以将它变成

 
    容斥原理的证明_容斥原理三集合公式解释


 

         我们把x取为1,这时容斥原理的证明_容斥原理三集合公式解释表示1-T(其中Tx被加的总次数),所以容斥原理的证明_容斥原理三集合公式解释,证明完毕。

容斥原理的证明_容斥原理三集合公式解释容斥原理的证明_容斥原理三集合公式解释容斥原理的证明_容斥原理三集合公式解释

(自己画的图示理解)


      题目

    能满足一定数目匹配的字符串的个数问题

       给出n个匹配串,它们长度相同,其中有一些’?’表示待匹配的字母。然后给出一个整数k,求能正好匹配k个匹配串的字符串的个数。更进一步,求至少匹配k个匹配串的字符串的个数。

         首先我们会发现,我们很容易找到能匹配所有匹配串的字符串。只需要对比所有匹配串,去在每一列中找出现的字母(或者这一列全是’?’,或者这一列出现了唯一的字母,否则这样的字符串就存在),最后所有字母组成的单词即为所求。

         现在我们来学习如何解决第一个问题:能正好匹配k个匹配串的字符串。

         我们在n个匹配串中选出k个,作为集合X,统计满足集合X中匹配的字符串数。求解这个问题时应用容斥原理,对X的所有超集进行运算,得到每个X集合的结果:

       容斥原理的证明_容斥原理三集合公式解释

         此处f(Y)代表满足匹配集合Y的字符串数。

         如果我们将所有的ans(X)相加,就可以得到最终结果:

         容斥原理的证明_容斥原理三集合公式解释

         这样,就得到了一个复杂度容斥原理的证明_容斥原理三集合公式解释的解法。

容斥原理的证明_容斥原理三集合公式解释

         这个算法可以作一些改进,因为在求解ans(X)时有些Y集合是重复的。

         回到利用容斥原理公式可以发现,当选定一个Y时,所有 容斥原理的证明_容斥原理三集合公式解释X的结果都是相同的,其符号都为容斥原理的证明_容斥原理三集合公式解释。所以可以用如下公式求解:

         容斥原理的证明_容斥原理三集合公式解释

         这样就得到了一个复杂度容斥原理的证明_容斥原理三集合公式解释的解法。

         现在我们来求解第二个问题:能满足至少k个匹配的字符串有多少个。

         显然的,我们可以用问题一的方法来计算满足kn的所有结果。问题一的结论依然成立,不同之处在于这个问题中的X不是大小都为k的,而是>=k的所有集合。

         如此进行计算,最后将f(Y)作为另一个因子:将所有的ans做和,有点类似二项式展开:

容斥原理的证明_容斥原理三集合公式解释

在《具体数学》( Graham, Knuth, Patashnik. “Concrete Mathematics” [1998] )中,介绍了一个著名的关于二项式系数的公式:

容斥原理的证明_容斥原理三集合公式解释

根据这个公式,可以将前面的结果进行化简:

容斥原理的证明_容斥原理三集合公式解释

那么,对于这个问题,我们也得到了一个容斥原理的证明_容斥原理三集合公式解释的解法:

容斥原理的证明_容斥原理三集合公式解释


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • hp中国区总裁孙振耀职场圣经

    hp中国区总裁孙振耀职场圣经

    2021年5月4日
    141
  • 浅谈插头dp

    浅谈插头dp毒瘤瘤的插头dp

    2022年7月1日
    21
  • 微机原理与接口技术电子版_微机原理与接口技术主要内容

    微机原理与接口技术电子版_微机原理与接口技术主要内容微型计算机原理接口与技术综述论文汇编微型计算机原理与接口技术课程综述内容摘要微型计算机原理与接口技术主要讲的是微型计算机的基本工作原理、系统的组成及接口技术和基本的汇编语言程序设计知识。本文主要对微机原理与接口技术的学习内容和应用做介绍。一、微型计算机原理与接口技术课程综述本课程共分十章。第一章介绍了微型计算机的整体概念;第二章讲述了80X86微处理器的结构、功能、总线操作时序和80X86微处理器…

    2022年9月26日
    3
  • 360天擎卸载(2021年亲测有效)[通俗易懂]

    360天擎卸载(2021年亲测有效)[通俗易懂]360天擎卸载指南该方法面向个人电脑的,公司电脑安全模式下可能会蓝屏一、找到核心文件位置右键360天擎-文件位置->EntClient->conf->EntBase.dat[base]persistent_connetion=closeshow_tip=1net_env=1communication_interval=900[api_frequency]checkupdate=180get_client_tasks=180getconf=180s

    2022年9月25日
    1
  • map改变一个字母是什么_组合总和 leetcode

    map改变一个字母是什么_组合总和 leetcode原题链接给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[ [“ate”,”eat”,”tea”], [“nat”,”tan”], [“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。tclass Solution {public: vector<vector<string>> g

    2022年8月8日
    6
  • 简单线性回归-最小二乘法推导过程

    简单线性回归-最小二乘法推导过程最近学习线性回归,自己推导了一下最小二乘法。 其他参考文章:https://blog.csdn.net/chasdmeng/article/details/38869941?utm_source=blogxgwz0https://blog.csdn.net/iterate7/article/details/78992015要是你在西安,感兴趣一起学习AIOPS,欢迎加入QQ群…

    2022年5月13日
    40

发表回复

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

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