算法基础课——第四章 数学知识(四)

image-20210807031457384

第四章 数学知识(四)


如无特殊说明,所有数均为正整数.


容斥原理


例如下维恩图:

image-20210807031457384
维恩图图示

如果想要求出左图三个圆覆盖的面积时,设黑边圆的面积为 S k S_k Sk,红边圆的面积为 S r S_r Sr,蓝边圆的面积为 S b S_b Sb,但 S k + S r + S b S_k+S_r+S_b Sk+Sr+Sb 并不是三个圆覆盖的面积,其有一些重叠的面积经过了多次计算.

中间图所示,两个圆共同覆盖的面积为灰色部分,则设黑边圆与红边圆共同覆盖的面积为 S k , r = S k ∩ S r S_{k,r}=S_k\cap S_r Sk,r=SkSr,黑边圆与蓝边圆共同覆盖的面积为 S k , b = S k ∩ S b S_{k,b}=S_k\cap S_b Sk,b=SkSb,红边圆与蓝边圆共同覆盖的面积为 S r , b = S r ∩ S b S_{r,b}=S_r\cap S_b Sr,b=SrSb.

右图所示,设三个圆共同覆盖的面积为 S k , r , b = S k ∩ S r ∩ S b S_{k,r,b}=S_k\cap S_r \cap S_b Sk,r,b=SkSrSb.

故三个圆覆盖的面积为:
S = S k + S r + S b − S k , r − S k , b − S r , b + S k , r , b S=S_k+S_r+S_b-S_{k,r}-S_{k,b}-S_{r,b}+S_{k,r,b} S=Sk+Sr+SbSk,rSk,bSr,b+Sk,r,b

因为当 S 1 = S k + S r + S b S_1=S_k+S_r+S_b S1=Sk+Sr+Sb 时:

  • 两个圆共同覆盖的面积 S k , b , S k , r , S r , b S_{k,b},S_{k,r},S_{r,b} Sk,b,Sk,r,Sr,b非共同部分被计算了 2 2 2 次(共同部分即为 S k , r , b S_{k,r,b} Sk,r,b);
  • 三个圆共同覆盖的面积 S k , r , b S_{k,r,b} Sk,r,b 被计算了 3 3 3 次.

所以需要先将两个圆共同覆盖的面积都减去 1 1 1 次,此时 S 2 = S k + S r + S b − S k , r − S k , b − S r , b S_2=S_k+S_r+S_b-S_{k,r}-S_{k,b}-S_{r,b} S2=Sk+Sr+SbSk,rSk,bSr,b

  • 虽然两个圆共同覆盖的面积的非共同部分此时只计算了 1 1 1 次,但是其共同部分 S k , r , b S_{k,r,b} Sk,r,b 总共被减去了 3 3 3 次,此时它的面积没有被算进 S 2 S_2 S2 内.

故需要将 S k , r , b S_{k,r,b} Sk,r,b 补充到里面,故有:
S = S k + S r + S b − S k , r − S k , b − S r , b + S k , r , b S=S_k+S_r+S_b-S_{k,r}-S_{k,b}-S_{r,b}+S_{k,r,b} S=Sk+Sr+SbSk,rSk,bSr,b+Sk,r,b

这里做一下推广:

如果只有两个圆 S 1 , S 2 S_1,S_2 S1,S2,则两个圆的面积为 S = S 1 + S 2 − S 1 ∩ S 2 S=S_1+S_2-S_1\cap S_2 S=S1+S2S1S2

如果是四个圆 S 1 , S 2 , S 3 , S 4 S_1,S_2,S_3,S_4 S1,S2,S3,S4,则面积为:
S = S 1 + S 2 + S 3 + S 4 − S 1 ∩ S 2 − S 1 ∩ S 3 − S 1 ∩ S 4 − S 2 ∩ S 3 − S 2 ∩ S 4 − S 3 ∩ S 4 + S 1 ∩ S 2 ∩ S 3 + S 1 ∩ S 2 ∩ S 4 + S 1 ∩ S 3 ∩ S 4 + S 2 ∩ S 3 ∩ S 4 − S 1 ∩ S 2 ∩ S 3 ∩ S 4 \begin{aligned} S & =S_1+S_2+S_3+S_4 \\ & -S_1\cap S_2-S_1\cap S_3 - S_1\cap S_4 - S_2 \cap S_3 - S_2 \cap S_4 - S_3 \cap S_4 \\ & + S_1 \cap S_2 \cap S_3 + S_1 \cap S_2 \cap S_4 + S_1 \cap S_3 \cap S_4 + S_2\cap S_3 \cap S_4 \\ & -S_1 \cap S_2 \cap S_3 \cap S_4 \end{aligned} S=S1+S2+S3+S4S1S2S1S3S1S4S2S3S2S4S3S4+S1S2S3+S1S2S4+S1S3S4+S2S3S4S1S2S3S4
则对于 n n n 个圆来说,则面积为:
S = S 1 个 圆 − S 2 个 圆 + S 3 个 圆 + ⋯ + ( − 1 ) n − 1 S n 个 圆 S=S_{1个圆}-S_{2个圆}+S_{3个圆}+\cdots+(-1)^{n-1}S_{n个圆} S=S1S2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值