数论——容斥原理、莫比乌斯函数

数论——容斥原理、莫比乌斯函数

1、容斥原理:

  • 时间复杂度为 O ( 2 N ) O(2^N) O(2N),下面会有证明。
  • 举一个简单的例子:用韦恩图来思考,求 S 1 S1 S1 S 2 S2 S2 S 3 S3 S3三个集合的原有元素的并集,那么结果为: S 1 + S 2 + S 3 − S 1 ∩ S 2 − S 1 ∩ S 3 − S 2 ∩ S 3 + S 1 ∩ S 2 ∩ S 3 S1+S2+S3-S1 \cap S2-S1 \cap S3-S2 \cap S3+S1 \cap S2 \cap S3 S1+S2+S3S1S2S1S3S2S3+S1S2S3
  • 以此类推到 N N N个圆的交集:用容斥原理的方法答案为所有单个集合的元素个数-所有两个集合互相交集的元素个数+所有三个集合互相交集的元素个数…
  • 我们知道容斥原理公式一共涉及到的元素个数为: C N 1 + C N 2 + C N 3 + . . . + C N N C_N^1+C_N^2+C_N^3+...+C_N^N CN1+CN2+CN3+...+CNN。因为 C N 0 + C N 1 + C N 2 + C N 3 + . . . + C N N = 2 n C_N^0+C_N^1+C_N^2+C_N^3+...+C_N^N=2^n CN0+CN1+CN2+CN3+...+CNN=2n,因此 C N 1 + C N 2 + C N 3 + . . . + C N N = 2 n − 1 C_N^1+C_N^2+C_N^3+...+C_N^N=2^n-1 CN1+CN2+CN3+...+CNN=2n1,因此容斥原理公式一共涉及到的元素个数为 2 n − 1 2^n-1 2n1。关于此公式( C N 0 + C N 1 + C N 2 + C N 3 + . . . + C N N = 2 n C_N^0+C_N^1+C_N^2+C_N^3+...+C_N^N=2^n CN0+CN1+CN2+CN3+...+CNN=2n)的证明,我们可以假设等号左边为对于 N N N个物品所有选法的总个数,等号右边考虑每个物品选与不选两种情况,因此等式成立。
  • 因此容斥原理的时间复杂度为 O ( 2 N ) O(2^N) O(2N)
  • 容斥原理的证明:对于容斥原理 ∣ S 1 ∪ S 2 ∪ . . . ∪ S N ∣ = ∑ i = 1 N S i − ∑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值