鸽巢原理应用:证明派对中存在两个年龄和相同的不同子集
用鸽巢原理解决这个问题的正确思路
嘿,你的思路确实绕反了,换个角度从子集数量和总和范围入手,用鸽巢原理就能轻松搞定:
- 先算10个人能组成的不同子集总数:每个人要么在子集里,要么不在,所以总共有
2^10 = 1024个子集(包括空集,它的年龄总和为0)。 - 再计算这些子集的年龄总和的可能范围:最小总和是0(空集),最大总和是10个人全是100岁,也就是
10*100 = 1000。所以总和的可能取值一共是1000 - 0 + 1 = 1001种。 - 这时候鸽巢原理直接生效:我们有1024个“鸽子”(子集),却只有1001个“鸽巢”(可能的总和),所以至少存在两个不同的子集,它们的年龄总和完全相同。
如果这两个子集有重叠的元素,你还可以把它们的交集部分去掉,得到两个不相交的子集,它们的总和依然相等——不过题目明确说明“不必不相交”,所以找到两个不同子集就已经满足证明要求了。
内容的提问来源于stack exchange,提问作者C.Math
相关产品推荐
相关产品推荐

