额,最近看到了一个十分有趣的定理——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

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

Sperner定理及其证明的更多相关文章

  1. 二分图最大匹配的K&#246;nig定理及其证明

     二分图最大匹配的K?nig定理及其证明 本文将是这一系列里最短的一篇,因为我只打算把K?nig定理证了,其它的废话一概没有.    以下五个问题我可能会在以后的文章里说,如果你现在很想知道的话,网上 ...

  2. Computer Science Theory for the Information Age-6: 学习理论——VC定理的证明

    VC定理的证明 本文讨论VC理论的证明,其主要内容就是证明VC理论的两个定理,所以内容非常的枯燥,但对于充实一下自己的理论知识也是有帮助的.另外,VC理论属于比较难也比较抽象的知识,所以我总结的这些证 ...

  3. 《University Calculus》-chaper8-无穷序列和无穷级数-泰勒定理的证明

    泰勒定理: 证明:

  4. latex中使用定理、证明、缩进

    1.定理和证明 \documentclass[a4paper,UTF8]{article} \usepackage{ctex} \usepackage{amsthm,amsmath,amsfonts, ...

  5. xdoj-1057(Lucas定理的证明及其模板)

    Lucas定理的证明: 转自百度百科(感觉写的还不错) 首先你需要这个算式:    ,其中f > 0&& f < p,然后 (1 + x) nΞ(1 + x) sp+q Ξ ...

  6. hdu5391-Zball in Tina Town-威尔逊定理(假证明)

    Tina Town is a friendly place. People there care about each other. Tina has a ball called zball. Zba ...

  7. 二分图最小覆盖的Konig定理及其证明,最小的覆盖证明

    [转http://www.cppblog.com/abilitytao/archive/2009/09/02/95147.html  ->  http://yejingx.ycool.com/p ...

  8. 初等数论-Base-2(扩展欧几里得算法,同余,线性同余方程,(附:裴蜀定理的证明))

    我们接着上面的欧几里得算法说 扩展欧几里得算法 扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式\(^①\): ax+by = gcd(a, b) =d(解一定存在,根据数论中的 ...

  9. Fermat小定理的证明

    本证明参考了李煜东老师<算法竞赛进阶指南>. 我们首先证明欧拉定理,然后推导出费马小定理. 欧拉定理:若\(\gcd(a,n)=1,a,n\in \mathbb{Z}\),则\(a^{\p ...

随机推荐

  1. spark之map与flatMap差别

    scala> val m = List(List("a","b"),List("c","d")) m: List[ ...

  2. CNN tensorflow text classification CNN文本分类的例子

    from:http://deeplearning.lipingyang.org/tensorflow-examples-text/ TensorFlow examples (text-based) T ...

  3. [Apple开发者帐户帮助]二、管理你的团队(6)找到您的团队ID

    该组ID是已分配给您的团队苹果产生了独特的10个字符的字符串.您需要为某些活动提供您的团队ID, 例如将您的应用程序转移到App Store Connect中的其他开发人员. 在您的开发者帐户中,单击 ...

  4. Docker 探索安装WordPress+Mysql8.0

    拉取MYSQL,注意默认是8.0版本,连接加密方式有变化 docker pull mysql 运行MYSQL docker run --name wordpress-mysql -p 3306:330 ...

  5. android view、viewgroup 事件响应拦截处理机制

    文章中会用到部分网络资源,首先将原作者的链接附上. 但是还是会附上数量较大的关于此部分内容的自己的思考. ----------------------------------------------- ...

  6. spring定时任务Cron时间设定

    直接举例: 0 10 0 * *?分别对应的是 秒 分 时 日 月 周 年 秒(0–59)分钟(0–59)小时(0–23)日(1–31)月(1–12或JAN–DEC)周(1–7或SUN–SAT)年(1 ...

  7. IBMWebsphere 使用jar包删除文件

    1. 先使用ant打包一个jar包,删除其他不要的目录和文件,仅保留一个空的xxx.war文件夹("xxx"对应was上的工程安装根目录) 2. 在文件夹下新建一个META-INF ...

  8. creat-react-app 支持 less

    yarn  eject yarn add less less-loader config/ webpack.config.dev.js config/ webpack.config.prod.js 文 ...

  9. i合拍应用客户端安卓项目源码

    i合拍是一款新型的拍照社交App它可以让你和朋友,亲人,陌生人合拍一张照片参与别人的合拍,体现自己的创意使用说明:使用了gpuimage进行滤镜渲染 实现远程合拍,分享合拍等一系列功能. 手机app下 ...

  10. WM消息大全

    消息名 消息值 说明 WM_CREATE 0x0001 应用程序创建一个窗口 WM_DESTROY 0x0002 一个窗口被销毁 WM_MOVE 0x0003 移动一个窗口 WM_SIZE 0x000 ...