额,最近看到了一个十分有趣的定理——Sperner定理。其实这个定理在OI中没什么用处,因此我都没把这篇文章放到我的OI标签里(不知道在MO中是否有用?)但是觉得它很有趣于是就过来写一下。

由于博主太弱不会用LaTeX写取整符号,本文中用\([x]\)表示\(x\)下取整。

问题: 有一个\(n\)元集合\(S_n\),从中选出若干个子集,满足没有任何两个子集之间存在包含关系,问最多能选出多少个?

首先结论是很好猜的。如果把所有\(k\)元子集全部选出,那么显然不会包含,一共能选\(n\choose k\)个子集。显然这个数在\([\frac{n}{2}]\)时取到最大值,我也构造不出来什么更优的选法,我猜答案就是\(n\choose [\frac{n}{2}]\) !

正确答案就是\(n\choose [\frac{n}{2}]\). 但这个结论的精彩之处在于它的证明:

证明: 对于选出的每一个子集\(S\),我们定义它的生成排列(好吧这个名字是我自己瞎起的)为一些\(1\)到\(n\)的排列,这个排列应当满足前\(|S|\)个元素构成的集合为\(S\), 后\(n-|S|\)个元素构成的集合为\(S_n-S\). 不难发现一个集合\(S\)的生成排列有\(|S|!(n-|S|)!\)个。

例如: \(n=5\),集合\({1,3,4}\)的生成排列有以下\(12\)个:

1 3 4 2 5
1 3 4 5 2
1 4 3 2 5
1 4 3 5 2
3 1 4 2 5
3 1 4 5 2
3 4 1 2 5
3 4 1 5 2
4 1 3 2 5
4 1 3 5 2
4 3 1 2 5
4 3 1 5 2

然后我们考虑题目中子集互不包含的限制,在这里转化成了,从任何两个子集的各任取一个生成排列,这两个生成排列不相等。也就是所有的子集的生成排列是没有重复的。因为如果某个排列\(p\)同时是两个不相等的子集\(A,B\)的生成排列,若\(|A|=|B|\)则有\(A\)和\(B\)都是排列\(p\)的同一前缀构成的集合,\(A,B\)相等,矛盾;否则不妨设\(|A|<|B|\), 则\(A\)集合内元素的一个排列是\(B\)内元素的一个排列的前缀,显然有\(A\in B\)。同样地,我们可以证明如果\(A\)包含\(B\), 则一定存在排列\(p\)满足\(p\)同时是\(A\)和\(B\)的生成排列。

因此,原题条件等价于,选出尽量多的集合,使得所有集合的生成排列没有重复。而设选出了\(m\)个集合,第\(i\)个集合的大小是\(S_i\), 因为所有生成排列没有重复,所有生成排列的个数不超过\(n!\), 也就是$$\sum^m_{i} |S_i|!(n-|S_i|)!\le n!$$把\(n!\)除过去$$\sum^m_{i=1} \frac{1}{n\choose S_i}\le 1$$根据简单的二项式系数性质可得\(m\le {n\choose [\frac{n}{2}]}\)

(非常抱歉我把如此简单的东西讲复杂了QAQ)

不过以上过程虽然很容易理解,但是确实很难想啊……据说数学界研究了十几年才得到这个证明QAQ

另外还听说这个定理可以推广到可重集。

最新文章

  1. J2EE修炼之四书五经[转自2004年程序员]
  2. [JS] JS模块化开发之RequireJS
  3. Matlab中sortrows函数解析
  4. 基于curl 的zabbix API调用
  5. bzoj1233: [Usaco2009Open]干草堆tower
  6. Poj 1269 Intersecting Lines_几何模板
  7. C# 字符串转byte数组
  8. Win10问题汇总
  9. elastic-job详解(五):自定义任务参数
  10. cocos creator怎么隐藏组件(setVisible)
  11. 关于ajax的controller层返回jsp页面多个list
  12. spring-data-jpa与mybatis的对比
  13. LeetCode(5):最长回文子串
  14. mysql 数据迁移
  15. DevOps之域名-搭建工具
  16. mock使用中出现的错误
  17. U盘安装Ubuntu三步走
  18. 元素设置disabled属性后便无法向后台传值
  19. CEIL与FLOOR
  20. php抓取网页中的内容

热门文章

  1. Android之使用MediaMetadataRetriever类获取视频第一帧
  2. HDU 3397 Sequence operation 多标记线段树
  3. jQuery总结04
  4. 邪恶的C++
  5. 弹出框中选项卡的运用(easyUI)
  6. oc62--block1
  7. caioj1495: [视频]基于连通性状态压缩的 动态规划问题:Formula 2
  8. 在Twitter信息流中大规模应用深度学习——推文的相关度计算使用了深度学习
  9. EOJ 3023 字符组合
  10. P1966 火柴排队(逆序对)