从线性代数想到的

最近看到一道题目:

集合{1,2,...,n}的一些非空子集A1,A2,...,Am满足任意两个子集的交集的元素个数为偶数,问m最大值是多少?


刚看到这道题,感觉如果从组合的角度入手比较困难。当时感觉这种题目和线性代数的风格有点像,就是有好多子集,可以把它们看成一些向量。然后它们之间有一些约束,仔细揣摩,发现真的可以用线性代数做!


我们把每个子集表示成一个n维的行向量,如果i在这个集合中,那么该向量第i个数就为1,否则为0.把这m个行向量从上到下排成一个矩阵。把这个矩阵看成域F2上的矩阵. 由于每两个子集的交集元素个数为偶数,那么每两个不同的行向量之间作内积,结果就为0. 再由于子集均非空,说明这m个行向量之间是两两正交的,从而它们肯定是线性无关的。

那么行秩=m=列秩<=n.

显然{1},{2},...,{n}这n个子集符合要求。从而m的最大值为n.


类似的有一道题目:A={1,2,...,n}的n+1个非空子集A[1],...,A[n+1].证明:存在{1,2,...,n+1}的两个不交的非空子集S={i1,...,ik}和T={j1,...,jm}满足:上述子集中以S为下标的所有子集的并集等于以T为下标的所有子集的并集。


同样像上面,我们可以建立一个n+1行,n列的矩阵.这n+1个行向量(不妨设为a[1],...,a[n+1])肯定是线性相关的.从而我们可以找到n+1个不全为0的数x[1],...,x[n+1],(这里看成有理数域)

st:  x[1]*a[1]+.....+x[n+1]*a[n+1]=0;

把上述项中x[i]中正的放左边,负的放右边变成正的系数,得到:

(...)*a[i1]+(...)*a[i2]+....+(...)*a[ik]=(...)*a[j1]+......+(...)*a[jm].   (*)


其中(...)表示一些正的系数.

下面说明上面的S={i1,...,ik}和T={j1,...,jm}就满足要求.

首先每一个向量至少有一维是1,所以不可能x[i]全为正或负,从而上面两个集合均非空,且显然它们交集非空.

对于每一个在   以S为下标的子集的并集  中的元素i,上述(*)式左边的第i维大于0,从而右边第i维也大于0,从而

i必定也在   以T为下标的子集的并集中,反之亦然,两个并集相等。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值