Sperner定理及其证明
额,最近看到了一个十分有趣的定理——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定理及其证明的更多相关文章
- 二分图最大匹配的König定理及其证明
二分图最大匹配的K?nig定理及其证明 本文将是这一系列里最短的一篇,因为我只打算把K?nig定理证了,其它的废话一概没有. 以下五个问题我可能会在以后的文章里说,如果你现在很想知道的话,网上 ...
- Computer Science Theory for the Information Age-6: 学习理论——VC定理的证明
VC定理的证明 本文讨论VC理论的证明,其主要内容就是证明VC理论的两个定理,所以内容非常的枯燥,但对于充实一下自己的理论知识也是有帮助的.另外,VC理论属于比较难也比较抽象的知识,所以我总结的这些证 ...
- 《University Calculus》-chaper8-无穷序列和无穷级数-泰勒定理的证明
泰勒定理: 证明:
- latex中使用定理、证明、缩进
1.定理和证明 \documentclass[a4paper,UTF8]{article} \usepackage{ctex} \usepackage{amsthm,amsmath,amsfonts, ...
- xdoj-1057(Lucas定理的证明及其模板)
Lucas定理的证明: 转自百度百科(感觉写的还不错) 首先你需要这个算式: ,其中f > 0&& f < p,然后 (1 + x) nΞ(1 + x) sp+q Ξ ...
- hdu5391-Zball in Tina Town-威尔逊定理(假证明)
Tina Town is a friendly place. People there care about each other. Tina has a ball called zball. Zba ...
- 二分图最小覆盖的Konig定理及其证明,最小的覆盖证明
[转http://www.cppblog.com/abilitytao/archive/2009/09/02/95147.html -> http://yejingx.ycool.com/p ...
- 初等数论-Base-2(扩展欧几里得算法,同余,线性同余方程,(附:裴蜀定理的证明))
我们接着上面的欧几里得算法说 扩展欧几里得算法 扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式\(^①\): ax+by = gcd(a, b) =d(解一定存在,根据数论中的 ...
- Fermat小定理的证明
本证明参考了李煜东老师<算法竞赛进阶指南>. 我们首先证明欧拉定理,然后推导出费马小定理. 欧拉定理:若\(\gcd(a,n)=1,a,n\in \mathbb{Z}\),则\(a^{\p ...
随机推荐
- ubuntu下一款有点感觉的 linux音乐播放器 clementine(小橘子))
https://www.clementine-player.org/ 在linux听音乐的感觉确实不是很好,音乐播放器很多.但是仅仅只是数量上的优势,在确实不是很好用.自带的rhythmbox确实很占 ...
- B3402 [Usaco2009 Open]Hide and Seek 捉迷藏 最短路
直接最短路板子,dij堆优化. 题干: 题目描述 贝茜在和约翰玩一个“捉迷藏”的游戏. 她正要找出所有适合她躲藏的安全牛棚.一共有N(≤N≤)个牛棚,被编为1到N号.她知道约翰(捉牛者)从牛棚1出发. ...
- B5248 [2018多省省队联测]一双木棋 状压dp
这个题当时划水,得了二十分,现在来整一整. 这个题用状压来压缩边界线,然后通过记忆化搜索进行dp.我们可以观察到,其实每次转移,就是把一个1向左移一位.最后的状态设为0. 这其中还要有一个变量来记录谁 ...
- Java常用类及反射,类加载
1.系统相关类 Java提供了System类和Runtime类来与程序运行的平台进行交互 A.System类代表当前Java程序的运行平台 a. System类是一个final类,该类的所有属性和方法 ...
- curl强制下载文件
<?phpfunction download_remote_file_with_curl($file_url, $save_to) { $ch = curl_init(); curl_setop ...
- Python 31 TCP协议 、socket套接字
1.TCP协议 可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割. (1)三次握手建链接( ...
- POJ 2342 Anniversiry Party(TYVJ1052 没有上司的舞会)
题意: P1052 没有上司的舞会 描述 Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个快乐指数.现在有个周 ...
- SQLServer外部数据导入--Excel版
例如要在test表里插入多行数据 假设字段有: ID.Name 首先要有需要导入的数据的Excel A1 对应ID B1 对应Name 选中Excel第一行的空白处,比如C1,在工具栏的函数文本框里输 ...
- js仿新浪游戏频道导航条
js仿新浪游戏频道导航条 在线演示本地下载
- Excel 批量出来数据
try { string sheetname = TextBox1.Text.Trim(); HttpPostedFile upLoadPostFile = FileUpload1.PostedFil ...