今天,我们来梳理一下解决三集合容斥问题的各类常用公式。这些公式大多可以直观理解,接下来我们会深入剖析其中的重点内容。


首先,我们从两个最基础的公式说起:


总数 = 不属于任何集合的数量 + 只属于一个集合的数量 + 只属于两个集合的数量 + 属于三个集合的数量
总数 = 集合 A 的数量 + 集合 B 的数量 + 集合 C 的数量 - 集合 A、B 的交集数量 - 集合 B、C 的交集数量 - 集合 C、A 的交集数量 + 集合 A、B、C 的交集数量 + 不属于任何集合的数量


由以上两个基础公式,我们可以推导出其余所有公式。


我们知道,只属于一个集合的数量 + 只属于两个集合的数量 + 属于三个集合的数量,计算的是至少属于一个集合的数量。由此可以得到第三个公式:


3. 总数 = 不属于任何集合的数量 + 至少属于一个集合的数量


根据公式(3),我们可以变形得出:


至少属于一个集合的数量 = 总数 - 不属于任何集合的数量


将这个变形公式代入公式(2),就能得到公式(4):


4. 至少属于一个集合的数量 = 集合 A 的数量 + 集合 B 的数量 + 集合 C 的数量 - 集合 A、B 的交集数量 - 集合 B、C 的交集数量 - 集合 C、A 的交集数量 + 集合 A、B、C 的交集数量


接下来,我们看看如何计算只属于两个集合的数量。这里我们先推导这个概念,而非按逻辑顺序先讲 “至少属于两个集合的数量”,原因是:求出 “只属于两个集合的数量” 之后,推导 “至少属于两个集合的数量” 会更直观。


我们要明确,集合 A、B 的交集数量,既包含了 “只属于 A、B 两个集合的数量”,也包含了 “同时属于 A、B、C 三个集合的数量”。因此,若想得到 “只属于 A、B 两个集合的数量”,需要用集合 A、B 的交集数量减去集合 A、B、C 的交集数量。同理,我们可以求出 “只属于 B、C 两个集合的数量” 和 “只属于 C、A 两个集合的数量”。将这三部分相加,就是只属于两个集合的总数量。


由此可得:


只属于两个集合的数量 = [集合 A、B 的交集数量 - 集合 A、B、C 的交集数量] + [集合 B、C 的交集数量 - 集合 A、B、C 的交集数量] + [集合 C、A 的交集数量 - 集合 A、B、C 的交集数量]


整理后得到公式(5):


5. 只属于两个集合的数量 = 集合 A、B 的交集数量 + 集合 B、C 的交集数量 + 集合 C、A 的交集数量 - 3× 集合 A、B、C 的交集数量


算出 “只属于两个集合的数量” 后,“至少属于两个集合的数量” 就很容易推导了,公式(6)如下:


6. 至少属于两个集合的数量 = 集合 A、B 的交集数量 + 集合 B、C 的交集数量 + 集合 C、A 的交集数量 - 2× 集合 A、B、C 的交集数量


这个公式的逻辑很清晰:至少属于两个集合的数量,就是只属于两个集合的数量加上属于三个集合的数量。对比公式(5)就能发现,公式(6)比公式(5)多了一个集合 A、B、C 的交集数量,正好对应这部分逻辑。


最后,我们推导只属于一个集合的数量。用至少属于一个集合的数量减去至少属于两个集合的数量,得到的就是只属于一个集合的数量。也就是用公式(4)减去公式(6),整理后得出公式(7):


7. 只属于一个集合的数量 = 集合 A 的数量 + 集合 B 的数量 + 集合 C 的数量 - 2× 集合 A、B 的交集数量 - 2× 集合 B、C 的交集数量 - 2× 集合 C、A 的交集数量 + 3× 集合 A、B、C 的交集数量


核心要点:你不必死记硬背全部 7 个公式,只需熟练掌握前两个基础公式,并理解其余公式的推导逻辑,就能在需要时自行推导。


接下来,我们通过一道例题来实战演练:

Among 250 viewers interviewed who watch at least one of the three TV channels namely A, B &C. 116 watch A, 127 watch C, while 107 watch B. If 50 watch exactly two channels. How many watch exactly one channel?

(A) 185

(B) 180

(C) 175

(D) 190

(E) 195


已知条件梳理:


至少观看一个频道的人数 = 250


恰好观看两个频道的人数 = 50


根据基础公式(1)的变形(因所有人都至少观看一个频道,故 “不属于任何集合的数量” 为 0):


至少观看一个频道的人数 = 只观看一个频道的人数 + 恰好观看两个频道的人数 + 观看三个频道的人数


代入已知数据可得:


250 = 只观看一个频道的人数 + 50 + 观看三个频道的人数


设观看三个频道的人数为x。


再根据公式(4):


至少属于一个集合的数量 = 集合 A 的数量 + 集合 B 的数量 + 集合 C 的数量 - 集合 A、B 的交集数量 - 集合 B、C 的交集数量 - 集合 C、A 的交集数量 + 集合 A、B、C 的交集数量


代入已知数据可得:


250 = 116 + 127 + 107 - 集合 A、B 的交集数量 - 集合 B、C 的交集数量 - 集合 C、A 的交集数量 + x


结合公式(5):


只属于两个集合的数量 = 集合 A、B 的交集数量 + 集合 B、C 的交集数量 + 集合 C、A 的交集数量 - 3× 集合 A、B、C 的交集数量


变形可得:


集合 A、B 的交集数量 + 集合 B、C 的交集数量 + 集合 C、A 的交集数量 = 只属于两个集合的数量 + 3× 集合 A、B、C 的交集数量


将上式代入公式(4)的方程中:


250=116+127+107−(50+3x)+x


250=350−50−2x


2x=50


x=25​


再将x=25代入第一步的方程:


250 = 只观看一个频道的人数 + 50 + 25


计算可得:只观看一个频道的人数 = 175


因此,本题答案为 C。