Java教程

容斥原理表示形式

本文主要是介绍容斥原理表示形式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

容斥原理对于大多数人来说是一个原理,因为这个事实太显然了,你想想,满足某一个条件的元素个数-满足某二个条件的元素个数+满足某三个条件的元素个数显然是对的。
于是大多数人就这么去把它当做一个原理去套了,然后被毒瘤出题人折磨致死。

所以这个东西是需要证明的。
其实容斥原理就是一种反演。
因为你是用至少满足某几个条件的方案数来推出刚好满足某几个条件的方案数。
令f(sta) = 至少满足sta条件的方案数 
令g(sta) = 刚好满足sta条件的方案数)
如果是至少,那么f(sta) = sigma g(ista) (ista & sta = sta)
则 g(空) = f(空) - f(1) - f(2) - f(3) … + f(1,2) + f(2,3)…
这个就显然多了对吧。。。。。。
相应的g(sta) = sigma( (-1)|tmp| * f(sta | tmp) , tmp & sta = 0)

这就是容斥原理的基本形式。
————————————————
版权声明:本文为CSDN博主「69160394」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_69160394/article/details/124723453

这篇关于容斥原理表示形式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!