五边形数定理
Play_with_toy
2023-08-10 21:46:33
# 五边形数定理
## 五边形数定理
我们观察
$$
\phi(z)=\prod_{n=1}^\infty(1-z^n)=1-z-z^2+z^5+z^7-z^{12}-z^{15}+\cdots
$$
发现大部分系数都为 $0$ 且非 $0$ 系数是 $\pm1$ 可以猜测 $\phi(z)$ 系数比较稀疏。事实上五边形数定理揭示了 $\phi(x)$ 的系数规律如下
$$
\phi(z)=\sum_{k=-\infty}^{+\infty}(-1)^kz^{\frac{k(3k-1)}{2}}
$$
下面我们通过 $\text{Ferrers}$ 图证明五边形数定理(证明参考 [$\text{OI Wiki}$](https://oiwiki.org/math/combinatorics/partition/#%E4%BA%94%E8%BE%B9%E5%BD%A2%E6%95%B0%E5%AE%9A%E7%90%86)),下面先引入两个概念:
互异偶分拆数:下面记作 $p_1(n)$ 表示将 $n$ 的部分数为偶数的互异分拆方法数;
互异奇分拆数:下面记作 $p_2(n)$ 表示将 $n$ 的部分数为奇数的互异分拆方法数;
我们可以发现
$$
\phi(z)=\sum_{n=0}(p_1(n)-p_2(n))z^n
$$
我们只需要证明 $|p_1(n)-p_2(n)|\le1$ 即可。
我们可以构造部分数为偶数的互异分拆方法到部分数为奇数的互异分拆方法的双射证明。
画出每个互异分拆的 $\text{Ferrers}$ 图。最后一行称为这个图的底,底上点的个数记为 $a$,连接最上面一行的最后一个点与图中某点的最长对角线,称为这个图的坡,坡上点的个数记为 $b$。
我们发现某些情况下可以将底拼到坡或坡拼到底上在部分数为偶数的互异分拆方法到部分数为奇数的互异分拆方法进行转换(变换行数),如下图的互异偶分拆
$$
\begin{matrix}
\begin{aligned}
&.\quad.\quad.\quad.\quad.\\
&.\quad.\quad.\quad.\\
\end{aligned}
\end{matrix}
$$
可以转换为下图的互异奇分拆
$$
\begin{matrix}
\begin{aligned}
&.\quad.\quad.\quad.\\
&.\quad.\quad.\\
&.\quad.\\
\end{aligned}
\end{matrix}
$$
或是下图的互异奇分拆
$$
\begin{matrix}
\begin{aligned}
&.\quad.\quad.\quad.\quad.\\
&.\quad.\quad.\\
&.\quad.\\
\end{aligned}
\end{matrix}
$$
可以转换为下图的互异偶分拆
$$
\begin{matrix}
\begin{aligned}
&.\quad.\quad.\quad.\\
&.\quad.\quad.\\
&.\quad.\\
&.\\
\end{aligned}
\end{matrix}
$$
我们可以分析一下不能转换的情况,可以发现当底与坡有公共点且 $a-b\le 1$ 时不能转换
- $a=b,n=\sum_{i=0}^{a-1}(a+i)=\dfrac{a(3a-1)}{2}$,此时 $[z^n]\phi(z)=\prod_{k=0}^{a-1}(-1)^{a+k}=(-1)^n.$
- $a=b+1,n=\sum_{i=0}^{b-1}(b+i+1)=\dfrac{b(3b+1)}{2}$,此时 $[z^n]\phi(z)=\prod_{k=0}^{b-1}(-1)^{b+k}=(-1)^n.$
我们可以合并两种情况可以得到五边形数定理。
五边形数定理可以 $O(n\sqrt{n})$ 递推出 $1\sim n$ 的分拆数。
$$
\phi(z)P(z)=1\Rightarrow \sum_{k=1}^n[z^k]\phi(z)[z^{n-k}]P(z)+[z^0]\phi(z)[z^n]P(z)=[n=0]
$$
我们可以枚举 $[z^k]\phi(z)\not=0$ 时即可暴力递推出逆,也可以 $O(n\log n)$ 多项式求逆。
## 题目
### $\text{H. Partition}$
$O(n\sqrt{n})$ 递推分拆数板子。
### $\text{I. Integer Partition}$
在 $\text{H}$ 基础上加上部分数为 $k$ 的限制,考虑限制部分数为 $k$ 的 $\text{GF}$
$$
P_k(z)=\dfrac{\phi(z^k)}{\phi(z)}=P(z)\phi(z^k)\Rightarrow
[z^n]P_k(z)=\sum_{k=0}^n[z^k]P(z)[z^{n-k}]\phi(z)
$$
可以 $O(\sqrt n)$ 暴力卷积。