五边形数和两个递归式

Posted permui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五边形数和两个递归式相关的知识,希望对你有一定的参考价值。

五边形数

五边形数是对每条边上有 \(n\) 个点构成的五边形的总点数的数列的称呼。

技术分享图片

由上图,可以得出这个数列的递归式。
\[ \begin{aligned} a_1&=1 \a_n&=a_{n-1}+(3n-2) \\end{aligned} \]
解递归式得到通项公式
\[ \begin{aligned} a_n&=\sum _{i=1}^n(3i-2)=\frac{n(3n-1)}{2} \end{aligned} \]
它也能通过三个三角形数得到。

狭义的五边形数中 \(n\) 均为正整数,但若我们拓展一下,令 \(n\) 为任意整数,此时形成的数列就是一般的五边形数数列。

下面给出两种五边形数的前几项。
\[ \begin{aligned} 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, 176, 210, 247, 287, 330 \0, 1, 2, 5, 7, 12, 15, 22, 26, 35, 40, 51, 57, 70, 77, 92, 100, 117, 126 \end{aligned} \]
其中广义的五边形数是按照 \(a_0,a_1,a_{-1},a_2,a_{-2}\dots\) 来给出的。容易发现这样的排列方式恰好构成递增的序列。

与五边形数有关的两个递归式都与其生成函数上的性质有关。欧拉发现,一个无穷乘积的形式幂级数展开式与五边形数的关系:
\[ \Phi(x)=\prod _{i=1}^\infty (1-x^i)=\sum _{i}(-1)^ix^{a_i}=1+\sum _{i=1}^\infty (-1)^ix^{\frac{i(3i\pm1)}2} \]
其中右边的 \(i\) 为任意整数。尝试列出左边生成函数的展开式的前 30 项。
\[ 1-x-x^2+x^5+x^7-x^{12}-x^{15}+x^{22}+x^{26}+\cdots \]
符合上面的式子。

欧拉对此的证明过于繁琐,下面给出一个简单的组合证明。

观察左边的无穷乘积,\(x^n\) 的系数其实是 (\(n\) 划分成偶数个不同数的方案数) - (\(n\) 划分成奇数个不同数的方案数) 。

现在用一种方法,使他们一一对应起来,达到尽量抵消的目的。

\(n\) 的划分为
\[ n=b_1+b_2+\cdots b_m \]
\(b\) 从大到小排序,设 \(s\) 为满足 \(b_1=b_2+1=b_3+2=\cdots b_s+(s-1)\) 最大的 \(s\) ,即从 \(b_1\) 开始连续下降的个数。

定义一种变换 \(f(b)\)

  • \(s<b_m\) ,那么变换到 \(n=(b_1-1)+(b_2-1)+\cdots +(b_s-1)+b_{s+1}+\cdots+b_m+s\) ,即把前面的 \(s\) 个减一并挪到最后。
  • \(s\ge b_m\) ,那么变换到 \(n=(b_1+1)+(b_2+1)+\cdots +(b_{b_m}+1)+b_{b_m+1}+\cdots +b_{m-1}\) ,即把 \(b_m\) 分配到最开始的 \(b_m\) 个。

容易发现,若 \(f(b)\) 合法,那么 \(f(f(b))=b\) ,因此所有对 \(f\) 合法的 \(b\) 构成了一个双射,并且 \(|f(b)|\)\(|b|\) 奇偶性不同,即可以发生抵消。

关键在于无法使用 \(f\) 变换的 \(b\) ,它们就是抵消剩下的东西。无法使用变换仅有两种情况:

  • \(s=m=b_m\) ,此时应用第二种变换并没有改变奇偶性。

此时有 \(n=m+(m+1)+\cdots +(2m-1)=\frac{m(3m-1)}{2}\)

  • \(s+1=m+1=b_m\) ,此时应用第一种变换使得 \(b_m=b_{m+1}\) ,不是不同数划分。

此时有 \(n=(m+1)+\cdots +2m=\frac{(3m-2)(m-1)}{2}=\frac{m(3m+1)}{2}\)

都是五边形数!

也就是当 \(n\) 为五边形数的时候会恰好剩余一个,系数为 \(m\) 的奇偶性,若 \(m\) 为奇数则 -1 ,否则 1 。

这样我们就证明了这个展开式。

应用

五边形数的两个应用运用了 五边形数 与 无穷乘积的展开式的关系。

分拆数

与五边形数关系最密切的是分拆数。

定义 \(p(n)\) 表示将 \(n\) 分成许多个无序的正整数的和的分法,特别地,\(p(0)=1,\forall k<0,p(k)=0\)

例如 \(4=4=3+1=2+2=2+1+1=1+1+1+1\) ,那么 \(p(4)=5\)

设分拆数的生成函数:
\[ P(x)=\sum _{i=0}^\infty p(i)x^i \]
显然有 \(P(x)=\frac 1{\Phi(x)}\) ,即 \(\frac 1{(1-x^k)}\) 的泰勒展开为 \(\sum _{i=0}^\infty x^{ki}\)

那么我们可以得到
\[ \begin{aligned} \Phi(x)P(x)&=1 \(1+\sum _{i=1}^\infty(-1)^ix^{\frac{i(3i\pm 1)}{2}})(\sum _{i=0}^\infty p(i)x^i)&=1 \end{aligned} \]
对比 \(x^n\) 的系数就有
\[ \begin{aligned} p(0)&=1 \p(n)+\sum _{i=1}^\infty(-1)^ip(n-\frac{i(3i\pm 1)}{2})&=0 \end{aligned} \]
因此我们可以用这个东西来 \(O(n\sqrt n)\) 处理出 \(p(1)\cdots p(n)\)

约数和函数

定义 \(\sigma(n)=\sum _{d|n}d\) ,设 \(F(x)=\sum _{i=1}^\infty \sigma(i)x^i\)\(\sigma\) 的生成函数。

特别地,\(\forall k<0,\sigma(k)=0\)

那么有
\[ F(x)=\frac{-x\Phi‘(x)}{\Phi(x)} \]
由此可以推出
\[ \sigma(n)+\sum _{i=1}^\infty (-1)^i\sigma(n-\frac{i(3i-1)}{2})=[n是广义五边形数]*(-n) \]

证明

\[ \begin{aligned} F(x)&=\frac {-x\Phi‘(x)}{\Phi(x)} \-\int \frac {F(x)}{x} \mathrm{d}x&=\ln \Phi(x) \&=\sum _{i=1}^\infty \ln (1-x^i) \&=-\sum _{i=1}^\infty\sum _{j=1}^\infty \frac{x^{ij}}{j} \\int \frac {F(x)}{x} \mathrm{d}x&=\sum _{i=1}^\infty\sum _{j=1}^\infty \frac{x^{ij}}{j} \end{aligned} \]

对一个一次多项式 \(F(x)\) 除以 \(x\) 再积分其实就是每项除以其次数,对比两边 \(x^n\) 的系数,就有
\[ \begin{aligned} \frac{a_nx^n}{n}&=\sum _{d|n}\frac 1dx^n \a_n&=\sum _{d|n}\frac n d=\sum _{d|n} d=\sigma(n) \end{aligned} \]























以上是关于五边形数和两个递归式的主要内容,如果未能解决你的问题,请参考以下文章

递归基础—组合数 / 排列数—输出的各种办法(dfs/递归/bfs)

递归函数与生成式

JAVA编程---递归

递归/匿名函数/三元表达式/列表生成式/字典生成式/二分算法

函数的递归,二分法,三元表达式,列表生成式,字典生成式,匿名函数,内置方法

匿名函数 递归 推导式