凄魉
2019-04-15 19:00:47
本文大多在介绍关于杨氏矩阵(Young tableau)的组合计数相关。
(本文内容大量搬运自维基百科)
定义:杨氏矩阵由
如图是一个杨氏矩阵的例子
下面讨论两个问题:
给定杨氏矩阵的形状(即告诉你矩阵的每一行有多少个元素),求这样的杨氏矩阵一共有多少种。
这个问题由钩子公式完美解决。
定义钩子
比如由四个元素组成的两行两列的杨氏矩阵共有
关于这公式的证明我还不会,但是这里有一个便于记忆的伪证
由于杨氏矩阵的定义,每个位置的元素一定大于自己下方以及右方的所有元素,所以如果我们给矩阵的每一个位置任意赋值,这样总共有
上述伪证为错误的原因是位置与位置之间不是独立的,所以说概率不能简单相乘求得,但令人惊奇的是结论确实是正确的。
下一个问题:
由
这个问题与上文的区别在于没有限制矩阵的形状。
这个问题有一个很简洁的递推公式,用
那么有什么组合意义呢?上述递推公式能符合许多的组合模型的计数,我们来一一介绍。
在维基百科中这一个组合意义的标题是"Telephone Number",其模型是
而根据这一组合意义确实很好确立组合意义递推式。考虑第
如果我们将图的匹配情况用一个排列来这样描述,若第
而这几项事物中中是有着紧密的联系的,在介绍联系之前还要介绍一种通过一个排列的构造出一个杨氏矩阵的构造方式。
Robinson–Schensted correspondence
首先来证明之前的递推式是如何作用在杨氏矩阵上的。
考虑大小为
对于每个大小为
插入从第一行开始,每一行执行以下步骤:
检查当前行中是否有大于
否则用
插入结束后,我们将
举个例子,将上图大小为
初始时矩阵为
1 | 2 | 4 | 8 | 9 |
---|---|---|---|---|
3 | 5 | 7 | 10 | |
11 |
然后在第一行找到第一个大于
1 | 2 | 4 | 6 | 9 |
---|---|---|---|---|
3 | 5 | 7 | 10 | |
11 |
找到第二行第一个大于
1 | 2 | 4 | 6 | 9 |
---|---|---|---|---|
3 | 5 | 7 | 8 | |
11 |
然后再将10插入。
1 | 2 | 4 | 6 | 9 |
---|---|---|---|---|
3 | 5 | 7 | 8 | |
10 |
在第四行,没有数字大于
1 | 2 | 4 | 6 | 9 |
---|---|---|---|---|
3 | 5 | 7 | 8 | |
10 | ||||
11 |
然后将
1 | 2 | 4 | 6 | 9 |
---|---|---|---|---|
3 | 5 | 7 | 8 | |
10 | ||||
11 | ||||
12 |
这个操作是可逆的,也就是说一个大小为
根据以上构造就能证明递推式的正确性。
这启发我们给定一个排列,我们也能构造出一个杨氏矩阵。但这并不是双射,因为大小为
给定一个排列,我们还是按照刚才介绍的构造方法,将排列中的每个数从前到后一一插入杨氏矩阵,同时我们记录另外一个杨氏矩阵,这个杨氏矩阵某个位置上数值的含义为第一个杨氏矩阵的这个位置第一次有值是排列中第几个数插入的时候。
还是看一个例子 排列
第一个杨表:
第二个杨表:
第一个杨表:
3 | 8 |
---|
第二个杨表:
1 | 2 |
---|
第一个杨表:
1 | 8 |
---|---|
3 |
第二个杨表:
1 | 2 |
---|---|
3 |
第一个杨表:
1 | 2 |
---|---|
3 | 8 |
第二个杨表:
1 | 2 |
---|---|
3 | 4 |
第一个杨表:
1 | 2 | 4 |
---|---|---|
3 | 8 |
第二个杨表:
1 | 2 | 5 |
---|---|---|
3 | 4 |
第一个杨表:
1 | 2 | 4 | 7 |
---|---|---|---|
3 | 8 |
第二个杨表:
1 | 2 | 5 | 6 |
---|---|---|---|
3 | 4 |
第一个杨表:
1 | 2 | 4 | 5 |
---|---|---|---|
3 | 7 | ||
8 |
第二个杨表:
1 | 2 | 5 | 6 |
---|---|---|---|
3 | 4 | ||
7 |
第一个杨表:
1 | 2 | 4 | 5 | 6 |
---|---|---|---|---|
3 | 7 | |||
8 |
第二个杨表:
1 | 2 | 5 | 6 | 8 |
---|---|---|---|---|
3 | 4 | |||
7 |
好了,大家应该看懂了吧。
不难发现两个杨氏矩阵的形状是一模一样的。然后接下来就有一个厉害的定理就是:
其中
也就是说任意两个形状相同的杨氏矩阵能还原出唯一的一个排列与其对应。
(我当然不会证明)
然后如果两个杨氏矩阵
当然两个一模一样的杨氏矩阵也能还原出一个排列来。这样的排列就是前面说过的"排列的逆等于自身"那些排列。
所以这也说明了为什么这样的排列个数与杨氏矩阵相等。(好神奇)
维基百科上应该都有证明,但我太菜了看不太懂。
另外还有一个等价的另外一种方法的构造。贴个链接跑人
Viennot's geometric construction
计数说完了,下面来说一些杨氏矩阵的应用。
由于他的单调性,我们可以拿它来做数据结构使用。