zoukankan      html  css  js  c++  java
  • 【学习笔记】斯特林数学习笔记

    这篇博客为个人学习用。然而我又是一个斯特林数极菜的人,所以内容非常蠢。

    第二类斯特林数

    1. 定义:(egin{Bmatrix}n\mend{Bmatrix})表示(n)个不同的球放进(m)个相同盒子的方案数。
    2. 递推:(egin{Bmatrix}n\mend{Bmatrix}=egin{Bmatrix}n-1\m-1end{Bmatrix}+megin{Bmatrix}n\m-1end{Bmatrix})。易证。
    3. 一个产生第二类斯特林数的地方:对(f(x)=x^n)进行差分((Delta f(x)=f(x+1)-f(x))(x)从0开始),我们记(Delta^i f(x))(i)阶差分,则(Delta^i f(0)=i!egin{Bmatrix}n\iend{Bmatrix})。你可以通过画一画差分的方式随时推出这个式子。这个式子的证明可以看《组合数学》。事实上可以通过这一个事实结合差分相关知识推出很多东西。(反正我是这么记的)
    4. 一个自然而然的事实:(k^n=sum_{i=0}^{k}i!egin{Bmatrix}n\iend{Bmatrix}inom{k}{i})。可以通过证明组合数的差分的形状证明这个式子(即证明(f(x)=inom{n}{x})(n)阶差分(Delta^{n}f(x)=inom{0}{x}=[x=0]))。
    5. 进一步的事实:(m!egin{Bmatrix}n\mend{Bmatrix}=sum_{i=0}^{m}(-1)^{m-i}i^ninom{m}{i}),可以通过上面的事实二项式反演得到。进一步化简,就是(egin{Bmatrix}n\mend{Bmatrix}=sum_{i=0}^{m}frac{(-1)^{m-i}}{(m-i)!}frac{i^n}{i!})。这个式子是第二类斯特林数的通项,可以通过这个式子利用ntt求同一行的斯特林数。
    6. 另一个视角看待自然而然的事实:(k^n=sum_{i=0}^{k}egin{Bmatrix}n\iend{Bmatrix}k^{underline{i}})。这就给出了利用第二类斯特林数转换下降幂和普通幂的方法。而下降幂非常适合做有限微积分。
    7. 我们能得到(k^n=sum_{i=0}^{k}(-1)^{n-i}egin{Bmatrix}n\iend{Bmatrix}k^{overline{i}})。这一步不太可以感性理解,但是很好看。
    8. 既然我们可以通过5计算同一行的第二类斯特林数,那么我们当然想计算同一列的。可以通过构建(F(x)=sum_{igeq 1}frac{x^i}{i!}=e^x-1)表示(i)个不同球放进(1)个不同盒子的方案的指数生成函数(即([igeq 1])的指数生成函数),我们有(egin{Bmatrix}n\mend{Bmatrix}=left[frac{x^n}{n!} ight]frac{F^{m}}{m!})。利用多项式科技可以做到(O(mlog m))

    第一类斯特林数

    没看。

  • 相关阅读:
    《大道至简》第一章读后感
    第一次随笔,献给结束大一的自己
    altium designer(AD13)隐藏敷铜的方法
    win下如何生成 github ssh公钥 GIT
    怎么把实际路径是英文的文件夹显示中文名?
    Linux GRUB手动安装方法详解
    Altium designer 如何将2D PCB转换成3D
    C++ 谓词(predicate) 与 仿函数 ( functor (function object))
    重载信号函数,解决参数问题
    VS2017常用快快捷键
  • 原文地址:https://www.cnblogs.com/czyarl/p/14487585.html
Copyright © 2011-2022 走看看