组合杂题选讲 #8

问题描述

题意:现在有 n 个人要成立若干个社团(一个人可以属于多个社团,也可以不属于任何社团)满足

  • 没有两个社团包含的成员完全相同;
  • 存在一个整数 t,使得任意两个不同的社团所共有的成员数恰好为 t

求证:所能成立的社团数量不超过 n 个。

提示:形式化地说,设 U={1,2,,n},已知集簇 S2U 满足存在 tU,使得对于任意 A,BS,要么 |AB|=t,要么 A=B。求证 |S|n

A 是一个集合,记号 2A 表示由 A 的所有子集组成的集簇(集合的集合)。

容易发现,只要每个人均成立一个只包含自己的社团,就可以成立恰好 n 个社团,满足每个社团的成员均不相同,且任意两个不同的社团所共有的成员数量均为 0(也即 t=0)。

无论是题面还是证明,这个问题和组合杂题选讲 #3 非常相似,因此也建议读者自行举一反三,尝试找出证明。

解答

查看解答

假设已经确定了某种成立 m 个社团的方案,第 i(1im) 个社团包含的成员的集合记作 Ci

(分类讨论)如果存在某个 Ci (不妨设为 C1)满足 |Ci|=t,那么一定有 t1C1Ci(2im)。于是对于任意不相同的 i,j2,一定有

CiCj=C1

那么所有 CiC1(i2) 均是非空的不交集合,这样的集合的数量至多为 n|C1|n1,于是总集合数 mn

另一方面,现在假设不存在某个 Ci,满足 |Ci|=t,也即对于任意 Ci 均有 |Ci|t。考虑构造 Rm×n 上的矩阵 A,满足

Ai,j={1jCi0jCi

并构造 Rm×m 上的矩阵 B=AAT,考虑 B 的组合意义,于是

Bi,j={|Ci|i=jtij

我们用 dimV 表示线性空间 V 的维数(线性基的个数),用 rangeT 表示线性变换 T 的值域。用 nullT 表示线性变换 T 的零空间,即被 T 映射到零向量的向量组成的集合。

那么只要验证 B 是双射就即可说明,

m=dimrangeBdimrangeAn

而验证 B 是双射只需要把 B 写成

B=tJm+diag(|C1|t,,|Cm|t)

的形式,其中 Jm 表示全为 1m 阶矩阵,diag(a1,,am) 表示对角线上分别为 a1,,am 的对角矩阵。然后根据行列式的定义论证 detB0 即可。

另一方面,我们也可以通过说明 B 是正定矩阵来证明该命题,具体而言,就是说明 B 是对称矩阵且对于任意非零向量 xRm,均有 xTBx>0

为了简便起见,将 |Ci| 记作 di,将 diag(d1t,,dmt) 记作矩阵 D。注意到 dit>0 对于任意整数 1im 均成立,于是显然矩阵 D 是正定矩阵。同时 Jm 显然是半正定矩阵,也即对于任意非零向量 xRm,均有 xTJmx=(i=1mxi)20。于是,对于任意非零向量 xRm

xTBx=xT(tJn+D)x=txTJnx+xTDx>0

这说明 B 是正定矩阵,根据正定矩阵的定义,有 dimnullT=0,即 B 是双射。

2023年1月22日 于深圳南山前海

新年快乐!

posted @   方而静  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示