zoukankan      html  css  js  c++  java
  • 下降幂多项式

    下降幂多项式


    下降幂的定义

    下降幂( ext{Falling Factorial})

    下降幂多项式( ext{Falling Factorial Polynomial})下面简称( ext{FFP})

    (x)(n)阶下降幂(x^{underline n}=prod_0^{n-1}(x-i) = frac{x!}{(x-n)!})

    一个下降幂多项式(F(x)=sum a_ix^{underline i})

    学习了斯特林数或许对于下降幂的性质能够有所了解

    [ ]


    快速求解(x^{underline n})的展开形式

    (x^{underline{n}}=x(x-1)cdots (x-n+1))

    考虑倍增求解,假设已知(F(x)=x^{underline{n}})

    要求(G(x)=x^{underline{2n}})

    显然(G(x)=F(x)F(x-n))

    (egin{aligned} F(x-n)=sum_{i=0}^{n} [x^i]F(x) cdot (x-n)^iend{aligned})

    用一次卷积处理这个二项展开即可

    复杂度为(O(nlog n))


    FFP与其点值的( ext{EGF})

    点值的( ext{EGF})(egin{aligned} EGF(F(x))=sum_0^{infty}frac{F(i)x^i }{i!}end{aligned})

    (egin{aligned}EGF(F(x))=sum_{i=0}^{infty}frac{x^i}{i!}sum_{j=0}^{n} frac{i!}{(i-j)!}cdot F_jend{aligned})

    (egin{aligned}EGF(F(x))=sum_{i=0}^{infty}x^i sum_{j=0}^{n} frac{1}{(i-j)!}cdot F_jend{aligned})

    换一下顺序

    (egin{aligned}EGF(F(x))=sum_{i=0}^{n} F_i sum_{j=i}^{infty}frac{1}{(j-i)!} x^jend{aligned})

    (egin{aligned}EGF(F(x))=sum_{i=0}^{n} F_i cdot x^i sum_{j=0}^{infty}frac{1}{j!} x^jend{aligned})

    (egin{aligned}EGF(F(x))=sum_{i=0}^{n} F_i cdot x^i e^xend{aligned})

    那么直接和(e^x)卷积就可以得到(F(x))( ext{EGF})

    Tips: (e^x)直接带入展开式(egin{aligned} e^{ax}=sum_0^{infty}frac{(ax)^i}{i!} end {aligned})

    如果要从( ext{EGF})得到(F(x))

    (egin{aligned}EGF(F(x))=sum_{i=0}^{n} F_i cdot x^ie^xend{aligned})

    (egin{aligned} F_i=frac{EGF(F(x))}{x^ie^x} end{aligned})

    那么就直接卷上(e^{-x})就可以了

    即可以通过简单卷积完成( ext{FFP} Longleftrightarrow ext{EGF})的转化

    [ ]


    FFP卷积

    求出( ext{EGF}),然后点值对应相乘(注意乘完之后要补上一个(i!)),最后再反求(F(x))

    [ ]

    [ ]


    Tips: 下面的知识恐怕需要先学多点求值/快速插值

    多项式转FFP

    带入(0,cdots n-1),多点求值得到( ext{FFP})点值的(EGF),然后求得到( ext{FFP})

    [ ]

    [ ]


    FFP转多项式

    求出(F(x))(EGF),然后带入前(n)项的值,快速插值回来即可

    由于(x_i)是连续的,所以不需要再多点求值求解(prodfrac{1}{x_i-x_j}),可以直接阶乘得到

    [ ]

    [ ]

    关于上升幂

    (x^{overline n}=frac{(x+n-1)!}{(x-1)!}=x(x+1)(x+2)cdots(x+n-1))

    容易发现的是(x^{overline n}=(-x)(-((-x)-1))(-((-x)-2))cdots (-(-x-(n-1)))=(-1)^n (-x)^{underline{n}})

    所以上升幂多项式与普通多项式的转化 可以认为是上面的点值变成了(0,-1,cdots ,-(n-1)),奇数项系数取反

  • 相关阅读:
    3(翻译)如何在cocos2d里面使用动画和spritesheet
    Objectivec2.0 每种数据类型定义属性的方法
    cocos2d 入门必备4个基本概念
    如何在Mac上搭建自己的服务器——Nginx
    JN_0001:在微信朋友圈分享时长大于10s的视频
    JN_0002:Win10禁止U盘拷贝文件的方法
    abstract class 和 interface区别
    ref和out
    .Net配置错误页
    Unity3d 物体沿着正七边形轨迹移动
  • 原文地址:https://www.cnblogs.com/chasedeath/p/13073206.html
Copyright © 2011-2022 走看看