zoukankan      html  css  js  c++  java
  • 五边形数和两个递归式

    五边形数

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

    pentagonal number gif

    由上图,可以得出这个数列的递归式。

    [egin{aligned} a_1&=1 \ a_n&=a_{n-1}+(3n-2) \ end{aligned} ]

    解递归式得到通项公式

    [egin{aligned} a_n&=sum _{i=1}^n(3i-2)=frac{n(3n-1)}{2} end{aligned} ]

    它也能通过三个三角形数得到。

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

    下面给出两种五边形数的前几项。

    [egin{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(3ipm1)}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) 个减一并挪到最后。
    • (sge 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})

    那么我们可以得到

    [egin{aligned} Phi(x)P(x)&=1 \ (1+sum _{i=1}^infty(-1)^ix^{frac{i(3ipm 1)}{2}})(sum _{i=0}^infty p(i)x^i)&=1 end{aligned} ]

    对比 (x^n) 的系数就有

    [egin{aligned} p(0)&=1 \ p(n)+sum _{i=1}^infty(-1)^ip(n-frac{i(3ipm 1)}{2})&=0 end{aligned} ]

    因此我们可以用这个东西来 (O(nsqrt 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{-xPhi'(x)}{Phi(x)} ]

    由此可以推出

    [sigma(n)+sum _{i=1}^infty (-1)^isigma(n-frac{i(3i-1)}{2})=[n是广义五边形数]*(-n) ]

    证明

    [egin{aligned} F(x)&=frac {-xPhi'(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}^inftysum _{j=1}^infty frac{x^{ij}}{j} \ int frac {F(x)}{x} mathrm{d}x&=sum _{i=1}^inftysum _{j=1}^infty frac{x^{ij}}{j} end{aligned} ]

    对一个一次多项式 (F(x)) 除以 (x) 再积分其实就是每项除以其次数,对比两边 (x^n) 的系数,就有

    [egin{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} ]

  • 相关阅读:
    git ——visual studio code 工具之 Git Graph & git clone & git checkout
    docker中添加redis & 在程序中应用
    Configuring Redis for ASP.NET Core Session Store(转载)
    Configuring Redis Session State In ASP.NET Core(转载)
    http请求端口占用异常——处理思路
    在pods中添加有关httpclient的 压力测试 & 监控
    Singleton HttpClient? Beware of this serious behaviour and how to fix it
    HttpClient 之 CLOSE_WAIT
    HttpClient的使用
    HttpClient连接池之CLOSE_WAIT
  • 原文地址:https://www.cnblogs.com/owenyu/p/8366352.html
Copyright © 2011-2022 走看看