Catalan Paths

从 \((0,0)\) 走到 \((n,n)\), 每次只能向上或者向右走,不能穿过直线 \(y=x\) 的方案数。

设从 \((0,0)\) 到 \((n,n)\) 的路径集合为 \(S\), 从 \((1,0)\) 到 \((n+1,n)\) 的路经集合 \(S^+\), 从 \((0,1)\) 到 \((n+1,n)\) 的路经集合 \(S^-\), 显然有 \(|S^+|=\binom{2n}{n},|S^-|=\binom{2n}{n-1}\)。 对于一条路径 \(W\in S^+\cup S^-\),让 \(\phi W\) 表示一条路径,如果 \(W\) 没有穿过 \(y=x\), 那么 \(\phi W=W\),否则 \(\phi W\) 表示 \(W\) 关于 \(W\) 与 \(y=x\) 的第一个交点的对称路径。

显然对于任意一条路径 \(W\in S^-\), 它都会穿过 \(y=x\), 并且 \(\phi W\in S^+\), 所以 \(C_n=\binom{2n}{n}-\binom{2n}{n-1}=\frac{\binom{2n}n}{n+1}\)


Vandermonde Determinant

\(\det\begin{gathered}\begin{pmatrix} x_1^{n-1} & x_2^{n-1} & ... & x_n^{n-1} \\ x_1^{n-2} & x_2^{n-2} & ... & x_n^{n-2} \\ ... \\ x_1 & x_2 & ... & x_n \\ 1 & 1 & ... & 1 \end{pmatrix}\end{gathered}=\prod\limits_{1\le i<j\le n}(x_i-x_j)\)

Proof.

\(\text{The left-hand side}\colon\sum\limits_{\sigma\in S(n)}(\text{sign }\sigma)x_{\sigma(1)}^{n-1}x_{\sigma(2)}^{n-2}\cdots x_{\sigma(n)}^0\)

\(\text{The right-hand side}\colon(-1)^mx_1^{a_1}x_2^{a_2}\cdots x_n^{a_n}\ (\sum\limits_{i=1}^na_i=\binom{n}{2},m=\#\{j\colon x_j\text{ is taken from }x_i-x_j\})\)

考虑建立竞赛图 \(T\), 对于一条边 \(e=(u,v)\) 我们称 \(u\) 是赢家,并定义 \(e\) 的权重:\(w(e)=x_u\text{ with sign }e=\begin{cases}1 & u<v\\-1 & u>v\end{cases}\)

再定义 \(w(T)=\prod\limits_{e\in T}w(e),\text{sign }T=\prod\limits_{e\in T}\text{ sign }e\)

那显然就有 \(\prod\limits_{1\le i<j\le n}=\sum\limits_{T}(\text{sign }T)w(T)\)

从另一个方面也很好解释为啥这两个很容易能看成相等的,因为竞赛图个数和 \(\prod\limits_{1\le i<j\le n}\) 拆开之后的项数都是 \(2^{\binom{n}{2}}\)

于是现在只需要建立竞赛图与行列式的关系。

首先考虑所有无环的竞赛图,显然可以给 \(1,2...n\) 排一个序构成排列 \(\sigma\), 容易观察到 \(w(T_{\sigma})=x_{\sigma(1)}^{n-1}x_{\sigma(2)}^{n-2}\cdots x_{\sigma(n)^0},\text{ sign }T_{\sigma}=(-1)^{\text{inv }\sigma}=\text{sign }\sigma\)

所以有 \(\det=\sum\limits_{\sigma\in S(n)}(\text{sign }\sigma)w(T_{\sigma})\)

现在考虑想办法过滤掉有环的竞赛图,让集合 \(S\) 表示所有有环的竞赛图集合, \(S^+=\{T\in S\colon \text{sign }T=1\},S^-=\{T\in S\colon \text{sign }T=-1\}\)

对于一个有环的竞赛图 \(T\),显然会存在一些点对使得其入度相同,我们找出所有点对中最小的点 \(i_0\) 和与 \(i_0\) 入度相同的最小的点 \(j_0\), 那么对于一个点 \(k\not= i_0, j_0\), 不妨设 \(i_0\rightarrow j_0\),那么三元组 \(i_0,j_0,k\) 之间的连边关系只可能有下面四种情况:



显然有 \(\#\text{II}=\#\text I + 1\)

考虑设 \(\phi T\) 表示图 \(T\) 将边 \((i_0,j_0)\) 反向后得到的新图,显然有 \(\text{sign }T=-\text{sign }\phi T,w(T)=w(\phi T)\),且一个在 \(S^+\) 中,一个在 \(S^{-}\) 中,于是这些图的贡献会被抵消掉,故原式得证.


The Pfaffian

称对于集合 \(\{1,2...n\}\) 的任意一个两两划分为在 \(\{1,2...n\}\)上的一个匹配 \(\mu\),写作 \(\mu=i_1j_1,i_2j_2,...,i_{n/2}j_{n/2}\text{ with }i_k<j_k\text{ for all }k\),对于一个斜对称矩阵 \(A\),我们记一个符号 \(a_{\mu}=a_{i_1j_1}a_{i_2j_2}\cdots a_{i_{n/2}j_{n/2}}\)

为了定义 \(\mu\) 的符号,考虑画图列出 \(1,2...;\#\mu\) 表示匹配交叉的数量,并且 \(\text{sign }\mu=(-1)^{\#\mu}\)



对于这个矩阵 \(A\),我们定义 \(pfaffian\text{ Pf}(A)=\sum\limits_{\mu}(\text{sign }\mu)a_{\mu}\)

那么有定理 \(\det A=[\text{Pf}(A)]^2\)

Proof.

首先还是考虑行列式的常见形式 \(\det A=\sum\limits_{\sigma\in S(n)}(\text{sign }\sigma)a_{\sigma}\ (a_{\sigma}=a_{1\sigma(1)}a_{2\sigma(2)}\cdots a_{n\sigma(n)})\)

定义 \(S\) 是所有排列中至少包含一个奇环的排列的集合。对于 \(\sigma\in S,\text{let }\sigma=\sigma_1\sigma_2\cdots\sigma_t\) 为其环分解,其中 \(\sigma_1\) 是所有奇环中最小标号所在的奇环,然后定义

显然除了 \(\sigma_1=(k)\) 的情况有 \(a_{\sigma}=-a_{\sigma'},(\text{sign }\sigma)a_{\sigma}=-(\text{sign }\sigma')a_{\sigma'}\), 而对于 \(\sigma_1=(k)\) 的情况,显然有 \(a_{\sigma}=0\)。

于是可以获得结论:\(\det A=\sum\limits_{\sigma\in E}(\text{sign }\sigma)a_{\sigma}\),其中 \(E\in S(n)\) 是所有只包含偶环的排列。

要证明定理,需要找到一个 \((\mu_1,\mu_2)\) 到 \(\sigma\in E\) 的双射关系 \(\phi\) 使得 \((\text{sign }\mu_1)a_{\mu_1}\cdot (\text{sign }\mu_2)a_{\mu_2}=(\text{sign }\sigma)a_{\sigma}\),这里简单举一个例子:



先不考虑符号的问题观察一番。

考虑正向拼凑 \(\sigma\), 考虑如下过程:每次选出未访问过的最小标号点,然后依次沿着 \(\mu1,\mu2\) 中的匹配边走,最后一定会走出若干个偶环。

考虑反向求 \(\mu1,\mu2\) ,考虑如下过程:每次选一个偶环,从上面的最小标号点开始依次把边划分给 \(\mu1,\mu2\)。

现在就只用考虑符号是否能对上。

假设 \(\phi(\mu_1,\mu_2)=(-1)^{e(\sigma)}a_{\sigma},e_(\sigma)=\#\{i\colon i>\sigma(i)\}\)

令 \(\sigma\) 的环分解是 \(\sigma_1\sigma_2\cdots\sigma_t;\) 那么 \(\text{sign }\sigma=(-1)^t\)

所以只需要证明 \(\text{sign }\mu_1\cdot\text{sign }\mu_2=(-1)^{e(\sigma)+t}\) 即 \(\#\mu_1+\#\mu_2-e(\sigma)\equiv t\ (\text{mod 2})\)

容易证明,对于这个环分解,如果我们交换 \(i,i+1\) 的位置,得到的 \(\#\mu_1'+\#\mu_2'-e(\sigma)'\) 和 \(\#\mu_1+\#\mu_2-e(\sigma)\) 奇偶性相同,故可以把 \(\sigma\) 经过多次交换变成



把匹配画出来显然长这样



显然对于这个东西, \(\#\mu_1'=\#\mu_2'=0,e(\sigma)'=t\) ,故原定理得证.

The Involution Principle的更多相关文章

  1. Cognition math based on Factor Space (2016.05)

    Cognition math based on Factor Space Wang P Z1, Ouyang H2, Zhong Y X3, He H C4 1Intelligence Enginee ...

  2. Atitit.软件开发的几大规则,法则,与原则Principle v3

    Atitit.软件开发的几大规则,法则,与原则Principle  v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ...

  3. C#设计模式系列:开闭原则(Open Close Principle)

    1.开闭原则简介 开闭原则对扩展开放,对修改关闭,开闭原则是面向对象设计中可复用设计的基石. 2.开闭原则的实现 实现开闭原则的关键就在于抽象,把系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规 ...

  4. 开放封闭原则(Open Closed Principle)

    在面向对象的设计中有很多流行的思想,比如说 "所有的成员变量都应该设置为私有(Private)","要避免使用全局变量(Global Variables)",& ...

  5. 最少知识原则(Least Knowledge Principle)

    最少知识原则(Least Knowledge Principle),或者称迪米特法则(Law of Demeter),是一种面向对象程序设计的指导原则,它描述了一种保持代码松耦合的策略.其可简单的归纳 ...

  6. 接口分离原则(Interface Segregation Principle)

    接口分离原则(Interface Segregation Principle)用于处理胖接口(fat interface)所带来的问题.如果类的接口定义暴露了过多的行为,则说明这个类的接口定义内聚程度 ...

  7. 依赖倒置原则(Dependency Inversion Principle)

    很多软件工程师都多少在处理 "Bad Design"时有一些痛苦的经历.如果发现这些 "Bad Design" 的始作俑者就是我们自己时,那感觉就更糟糕了.那么 ...

  8. 里氏替换原则(Liskov Substitution Principle)

    开放封闭原则(Open Closed Principle)是构建可维护性和可重用性代码的基础.它强调设计良好的代码可以不通过修改而扩展,新的功能通过添加新的代码来实现,而不需要更改已有的可工作的代码. ...

  9. 单一职责原则(Single Responsibility Principle)

    单一职责原则(SRP:The Single Responsibility Principle) 一个类应该有且只有一个变化的原因. There should never be more than on ...

随机推荐

  1. 05-Python模块

    一.简介 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被其他程序导入来使用模块具有的功能.这也是使用python标准库的方式. import time start_time ...

  2. ffplay源码编译

    ffplay是ffmpeg源码中一个自带的开源播放器组件,支持本地视频文件的播放以及在线流媒体播放,很多商业播放器都是基于ffplay定制而来的.ffplay中的代码充分利用了ffmpeg中的函数库, ...

  3. [Antd-vue] Warning: You cannot set a form field before rendering a field associated with the value.

    在用ant-design-vue的框架中,使用到了这种场景,就是点击编辑按钮,弹出modal模态框,渲染modal模态框中的form表单页面,并给表单赋值,但是在给表单赋值的时候,总是会报错. 错误提 ...

  4. p41_数据报与虚电路

    一.定义 数据报方式为网络层提供无连接服务. 无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同. 虚电路方式为网络层提供连接服务 连接服务:首先为分组的传 ...

  5. STL源码剖析:关联式容器

    AVL树 AVL树定义:红黑树是一颗二叉搜索树,特别的是一棵保持高度平衡的二叉搜索树 AVL树特点: 每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1 AVL树插入: 说明:新增节点的平衡因子 ...

  6. Netty 学习笔记(2) ------ 数据传输载体ByteBuf

    Netty中读写以ByteBuf为载体进行交互 ByteBuf的结构 ByteBuf以readerIndex和writerIndex划分为三块区域,废弃字节,可读字节,可写字节.每次从ByteBuf读 ...

  7. u盘安装 osx 出现 “不能验证”

    关于安装是出现关于出现“不能验证”错误: 解决办法 :打开终端 在"终端"里面修改时间 输入:date 032208102015.20

  8. spring oauth2+JWT后端自动刷新access_token

    这段时间在学习搭建基于spring boot的spring oauth2 和jwt整合. 说实话挺折腾的.使用jwt做用户鉴权,难点在于token的刷新和注销. 当然注销的难度更大,网上的一些方案也没 ...

  9. xctf-pwn hello_pwn

    走流程,看看文件类型 64位,开了NX 直接丢IDA分析 查看sub_400686() 是个给flag的函数,可以看到,只要满足if语句的条件使dword_60106C == 1853186401就可 ...

  10. MyBatis动态插入的实现

    mybatis通过定义前缀后缀和分割字符来拼接sql语句,实现动态插入的功能 <insert id="addNewsTypeByNewsId"> insert into ...