首页 > 其他分享 >分拆数

分拆数

时间:2023-09-11 14:34:38浏览次数:31  
标签:phi 分拆 数为 互异 quad &.

分拆数

五边形数定理

我们观察

\[\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}\)),下面先引入两个概念:

互异偶分拆数:下面记作 \(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{「HDU4651」 Partition}\)

\(O(n\sqrt{n})\) 递推分拆数板子。

\(\text{「HDU4658」 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)\) 暴力卷积。

标签:phi,分拆,数为,互异,quad,&.
From: https://www.cnblogs.com/JIEGEyyds/p/17693478.html

相关文章

  • 外汇天眼:Invast Global股价格下跌至最低水平,FXStreet分拆公司设新办事处!
    截止到今天,2023年已过去一半。上半年和过去一年总体上对一些公开交易的经纪商来说相对较好,但对其他一些经纪商来说却是另一回事,比如上周INVInc公布了自己股价跌至近2年新低;之后是FXStreet将公司部门拆分,其营销机构在塞浦路斯设立办事处;Dukascopy将印度50指数退市。具体新闻如下:1、......
  • 将俩个一个时间段按照固定时间拆分,比如把给定时间按照一小时拆分拆分
    importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importlombok.extern.slf4j.Slf4j;importjava.text.SimpleDateFormat......
  • [转]excel把合并单元格中的数据分拆到每一行
    原文地址:https://cloud.tencent.com/developer/article/1444393我们经常看到如下图所示的Excel表格:这种表格,每一列的包含关系,人眼看起来一目了然。但是A列B列这种......
  • 分拆数小记
    前言感觉大家应该都很早接触过分拆数这个逆天东西,因为形式比较灵活多变啊。感觉初赛就有几个这样的题。当然在分拆数以外还有一些划分数相关的小内容。基础内容以下问......
  • 循环~分拆素数和
    题目描述把一个偶数拆成两个不同素数的和,有几种拆法呢?输入输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。输出对应每个偶数,输出其拆成不同素......
  • 碑文书法汉字拆分,把字分拆出来高级
    此程序的主要目的,就是将碑文图片上的汉字截取出来,并且将文字周围多余边距去除,完成此后模式识别的先前准备工作。用的是opencv的库,在处理噪音和二值化处理的时候方便一点。......