Sperner 定理
前言
这是我个人在 2024 暑期外出培训时自己写的笔记,仅摘录一些简单又有用的内容。
Sperner 定理
Sperner 定理:设为元集合,它的个子集互不包含,有。
Sperner 证明
我们新定义一个结构叫做“最大链”,它是长这样的:
其中比多一个元素,显然,这个链条是最长的,故称之为“最大链”。这个概念有什么用呢?我们可以发现以下特点:
- 在元集合中,一共有条最大链;
- 所有的最大链中的所有集合包含了的所有子集;
- 若在一条最大链上,则不可能和在同一条链上;
- 一个子集所“占据”的最大链有条。
- 在理想情况下,只要还有剩余的最大链,就不会出现重合。
所以,现在问题被转换成了,如何在条最大链构成的集合中放入尽可能多的子集并且保证每一条最大链最多只包含一个子集。
因为“在理想情况下,只要还有剩余的最大链,就不会出现重合”,所以我们希望每一个子集所“占据”的最大链尽可能少。可以发现,当时,子集所“占据”的最大链最少。则一共可以放入个集合。显然这个数就是。
Sperner 例题
11个小朋友每天要有人上台表演,问至少需要几天才能让每个人都看到过其他10个人在台上给自己表演?
我们可以列一个表格来表示每天每人的表演情况:
天数 | 第一个人 | 第二个人 | … | 第十一个人 |
---|---|---|---|---|
一 | ✅ | ❌ | … | ❌ |
二 | ❌ | ✅ | … | ✅ |
三 | ✅ | ❌ | … | ✅ |
四 | ❌ | ✅ | … | ❌ |
五 | ❌ | ✅ | … | ✅ |
六 | ❌ | ❌ | … | ❌ |
七 | ✅ | ✅ | … | ✅ |
八 | ❌ | ❌ | … | ❌ |
九 | ✅ | ✅ | … | ✅ |
十 | ❌ | ✅ | … | ❌ |
十一 | ✅ | ❌ | … | ✅ |
这里我们把每一个的表演场次安排看作一个集合,里面的每一个元素包含了表演的天数,也就是说不表演的天数是不放在里面的。题目要求任意两个人都互相给对面表演过,那么就是要求出现下面的结构:
天数 | 第个人 | 第个人 |
---|---|---|
✅ | ❌ | |
❌ | ✅ |
这个结构我们不好直接考虑什么时候存在,让我们想想什么时候两个人没有互相表演:
- 两个人表演场次完全相同,也就是两个人的表演场次安排集合相同;
- 两个人只有一个人为另一个表演过,也就是两个人的表演场次安排集合相互包含。
重复一次,表演场次安排集合中只有表演的天数,没有不表演的天数,所以当只有一个人为另一个人表演时,两个集合之间存在包含关系。
下面是两个例子:
两个人都没有为对方表演过:此时两个集合相同。
天数 | 第个人 | 第个人 |
---|---|---|
一 | ✅ | ✅ |
二 | ❌ | ❌ |
三 | ✅ | ✅ |
四 | ❌ | ❌ |
五 | ❌ | ❌ |
六 | ❌ | ❌ |
七 | ✅ | ✅ |
八 | ❌ | ❌ |
九 | ✅ | ✅ |
十 | ❌ | ❌ |
十一 | ✅ | ✅ |
只有一个人为另一个人表演过:此时两个集合存在包含关系。
天数 | 第个人 | 第个人 |
---|---|---|
一 | ✅ | ✅ |
二 | ❌ | ❌ |
三 | ✅ | ✅ |
四 | ❌ | ❌ |
五 | ❌ | ❌ |
六 | ❌ | ❌ |
七 | ✅ | ✅ |
八 | ❌ | ❌ |
九 | ✅ | ❌ |
十 | ❌ | ❌ |
十一 | ✅ | ❌ |
那么显然当两个人的表演安排场次互不包含时,就出现了我们需要的结构。也就是说,让两个人互相为对方表演,需要让他们两个的表演安排场次集合互不包含。
现在的问题是,有没有足够的互不包含子集为所有小朋友分配而不重复?
我们可以通过Sperner 定理获得在不同天数下最多的方案数:
- 一天:不用考虑;
- 两天:,最多只有两种,无法分配;
- 三天:,最多只有三种,无法分配;
- 四天:,最多只有六种,无法分配;
- 五天:,最多只有十种,无法分配;
- 六天:,可以分配;
综上,至少需要六天。