五边形数

(其实是广义五边形数定理学习笔记)

很棒的博客

广义五边形数定理:

\[\large { \prod_{i=1}^ \infty (1-x^i) = \sum_i (-1)^i ( x^{\frac{i(3i-1)}{2}} + x^{\frac{i(3i+1)}{2}})} \]

背过就好了

不难发现 \([x^n]\prod _{i=1}^\infty(1-x^i)\) 的组合意义为 将 \(n\) 拆分成若干不同的正整数的方案数,并且拆成奇数个数的贡献系数为 \(-1\),偶数为 \(1\)

Ferrers 图

拆分方案可以用 Ferrers 图形象地表示出来。

Ferrers 图的定义为若干行格子,长度和恰好为 \(n\),且长度严格递减。每一行表示拆出来的一个数。

比如 18=7+6+4+1 的表示为:

\[\begin{aligned} &0 0 0 0 0 0 0\\ &0 0 0 0 0 0\\ &0 0 0 0\\ &0\\ \end{aligned} \]

\(m\) 为最后一行的格子数, \(s\) 为对角线上的格子数。考虑构造一种映射关系。如果 \(m \le s\),那么把最后一行扔到前 \(m\) 行的最后边;如果 \(m > s\),那么把 \(m> s\),那么把对角线拎出来扔到最后一行的下面。这样的话大多数情况都会让(行数的)奇偶构成双射。正负抵消后为 \(0\)

但是有两种情况会出锅,一种是最后一行和对角线相等且相交:

0 0 0 0 0

0 0 0 0

0 0 0

变成

0 0 0 0 0 0

0 0 0 0 0

0

这时候构成单射,没有统计到。此时形状为梯形,可用等差数列表示:(设有 \(k\) 行)

\[k + (k + 1) + ... + (2k-1) = \frac{(3k-1)k}{2} \]

注意有个 \(-1\) 的系数,为:

\[-\frac{(3k-1)k}{2} \]

还有一种是最后一行比对角线多 \(1\) 且相交:

0 0 0 0 0 0

0 0 0 0 0

0 0 0 0

变成

0 0 0 0 0

0 0 0 0

0 0 0

0 0 0

变成了不合法情况,不能构成双射,需要额外加上。此时的 \(n\) 为:

\[-\frac{k(3k+1)}{2} \]

所以最终的生成函数为:

\[\sum_i (-1)^k (x^{\frac{k(3k-1)}{2}} + x^{\frac{k(3k+1)}{2}}) \]

注意到小于等于 \(n\) 的有值的项的数量为 \(O(\sqrt n)\) 级别的,于是可以使用暴力多项式算法。

posted @ 2021-04-21 20:58  JiaZP  阅读(375)  评论(0编辑  收藏  举报