分拆数

1|0更新日志

点击查看日志

分拆: 将自然数 n 写成递降正整数和的表示。

n=r1+r2++rk(r1r2rk1)

和式中每个正整数称为一个部分

分拆数:pn。自然数 n 的分拆方法数。

自 0 开始的分拆数:

n 0 1 2 3 4 5 6 7 8
pn 1 1 2 3 5 7 11 15 22

2|0k 部分拆数

n 分成恰有 k 个部分的分拆,称为 k 部分拆数,记作 p(n,k)
显然,k 部分拆数 p(n,k) 同时也是下面方程的解数:

nk=y1+y2++yk(y1y2yk0)

发现 p(n,k) 可以由以下两部分贡献:

  1. 可以增加一个 1 的部分;
  2. 可以把之前所有的部分加 1

因此有和式:

p(n,k)=p(n1,k1)+p(nk,k)

如果列出表格,每个格里的数,等于左上方的数,加上该格向上方数,所在列数个格子中的数。

2|1生成函数

由等比数列求和公式,有:

11xk=1+xk+x2k+

所以

G(x)=11x11x211x3

对于 k 部分拆数,生成函数稍微复杂。具体写出如下:

n,k=0p(n,k)xnyk=11xy11x2y11x3y

2|2Ferrers 图

Ferrers 图: 将分拆的每个部分用点组成的行表示。每行点的个数为这个部分的大小。

根据分拆的定义,Ferrers 图中不同的行按照递减的次序排放。最长行在最上面。
例如:分拆 12=5+4+2+1 的 Ferrers 图。

将一个 Ferrers 图沿着对角线翻转,得到的新 Ferrers 图称为原图的共轭,新分拆称为原分拆的共轭。显然,共轭是对称的关系。
例如上述分拆 12=5+4+2+1 的共轭是分拆 12=4+3+2+2+1

最大 k 分拆数: 自然数 n 的最大部分为 k 的分拆个数。

根据共轭的定义,有显然结论:
最大 k 分拆数与 k 部分拆数相同,均为 p(n,k)

3|0互异分拆数

互异分拆数:pdn。自然数 n 的各部分互不相同的分拆方法数。(Different)

n 0 1 2 3 4 5 6 7 8
pdn 1 1 1 2 2 3 4 5 6

同样地,定义互异 k 部分拆数 pd(n,k),表示最大拆出 k 个部分的互异分拆,是这个方程的解数:

n=r1+r2++rk(r1>r2>>rk1)

完全同上,也是这个方程的解数:

nk=y1+y2++yk(y1>y2>>yk0)

这里与上面不同的是,由于互异,新方程中至多只有一个部分为零。有不变的结论:恰有 j 个部分非 0,则恰有 pd(nk,j) 个解,这里 j 只能取到 kk1。因此直接得到递推:

pd(n,k)=pd(nk,k1)+pd(nk,k)

同样像组合数一样列出表格,每个格里的数,等于该格前一列上数,所在列数个格子中的数,加上该格向上方数,所在列数个格子中的数。

3|1生成函数

由于每个值最多只能取一个,所以:

G(x)=(1+x)(1+x2)(1+x3)

3|2奇分拆数

奇分拆数:pon。自然数 n 的各部分都是奇数的分拆方法数。(Odd)
有一个显然的等式:(从奇偶性上来分析)

i=1(1+xi)=i=1(1x2i)i=1(1xi)=i=111x2i1

最左边是互异分拆数的生成函数,最右边是奇分拆数的生成函数。两者对应系数相同,因此,奇分拆数和互异分拆数相同:

pon=pdn

但显然 k 部奇分拆数和互异 k 部分拆数不是一个概念,这里就不列出了。

再引入两个概念:
互异偶分拆数:pden。自然数 n 的部分数为偶数的互异分拆方法数。(Even)
互异奇分拆数:pdon。自然数 n 的部分数为奇数的互异分拆方法数。(Odd)
因此有:

pdn=pden+pdon

同样也有相应的 k 部概念。由于过于复杂,不再列出。

4|0五边形数定理

单独观察分拆数的生成函数的分母部分:

i=1(1xi)

将这部分展开,可以想到互异分拆,与互异分拆拆出的部分数奇偶性有关。

具体地,互异偶部分拆在展开式中被正向计数,互异奇部分拆在展开式中被负向计数。因此展开式中各项系数为两方法数之差。即:

i=0(pdeipdoi)xi=i=1(1xi)

接下来说明,多数情况下,上述两方法数相等,在展开式中系数为 0;仅在少数位置,两方法数相差 11

这里可以借助构造对应的办法。
画出每个互异分拆的 Ferrers 图。最后一行称为这个图的底,底上点的个数记为 b (Bottom);连接最上面一行的最后一个点与图中某点的最长 45 度角线段,称为这个图的坡,坡上点的个数记为 s (Slide)。

要想在互异偶部分拆与互异奇部分拆之间构造对应,就要定义变换,在保证互异条件不变的前提下,使得行数改变 1

  • 变换 A:b 小于等于 s 的时候,就将底移到右边,成为一个新坡。
  • 变换 B:b 大于 s 的时候,就将坡移到下边,成为一个新底。

这两个变换,对于多数时候的 n,恰有一个变换可以进行,就在互异偶部分拆与互异奇部分拆之间构造了一个一一对应。已经构造了一一对应的两部分分拆个数相等,因此这时展开式中第 n 项系数为 0
变换 A 不能进行的条件:底与坡有一个公共点,即 b=s。这种情形只发生于:

n=b+(b+1)++(b+b1)=b+b(b1)2=b(3b1)2

这时,展开式中第 n 项为:

i=0b1(x)b+i=(1)bi=0b1xb+i=(1)bxn

变换 B 不能进行的条件:底与坡有一个公共点,即 b=s+1。这种情形只发生于:

n=(s+1)+(s+2)++(s+s)=s(3s1)2

这时,展开式中第 n 项为:

i=1s(x)s+i=(1)si=1sxs+i=(1)sxn

至此,我们就证明了:

(1x)(1x2)(1x3)=+x26x15+x7x2+1x+x5x12+x22=k=+(1)kxk(3k1)2

将这个式子整理,对比两边各项系数,就得到递推式。

(1+p1x+p2x2+p3x3+)(1xx2+x5+x7x12x15+x22+x26)=1

pn=pn1+pn2pn5pn7+

这个递推式有无限项,但是如果规定负数的分拆数是 00 的分拆数已经定义为 1),那么就简化为了有限项。


__EOF__

本文作者TrueFalse
本文链接https://www.cnblogs.com/cqbzljh/p/17620859.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cqbzljh  阅读(240)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示