zoukankan      html  css  js  c++  java
  • 数学搬运工

    
    
    (如果看不到图片,可以右键图 在新标签中打开,再在新打开的标签中右键图 在新标签中打开,然后回来不停刷新博文页面)

    导数的运算

     

    y=f(x)的反函数是x=g(y), 则有y'=1/x'.

    若h(x)=f(g(x)),  则h‘(x)=f’(g(x))g’(x).
     
     
    C为常数)
     
     
     

     

     

     

    积分

    ∫,积分是微分的逆运算(拉丁文summa首字母的拉长,读作:“sum”),即知道了函数的导函数,反求原函数。
     
     
     
     

    泰勒中值定理

    泰勒公式是将一个在x=x0处具有n阶导数的函数f(x)利用关于(x-x0)的n次多项式来逼近函数的方法。
    若函数f(x)在包含x0的某个闭区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x,成立下式:
     
     
    其中,  表示f(x)的n阶导数,等号后的多项式称为函数f(x)在x0处的泰勒展开式,剩余的Rn(x)是泰勒公式的余项,是(x-x0)n的高阶无穷小(不是很懂。。我基本都把它当成0)。
     
     

    泰勒公式转换

    若用x0=0,则该式又叫麦克劳林级数。即  f(x)=
     
     
    可以依次定义多项式A(x)的指数运算和对数运算
      指数:
          f(x)=e^x.
          f(A(x))=∑Ai(x)/i!      (i>=0)
      注:【未经测试】臆想得出,当求得多项式的系数在%意义下时, A(x)强制要求常数项为0,不然在牛跌到最底层时,exp(一个非零数)或ln(一个非1数) 无法在%意义下表示(至少我不会。。)
        所以如果是ntt的题,常数项要求为0,如果遇到此类问题,,糊一个办法:在求exp或ln之前先*x,求完以后再处理回来,也许可行。。      或者用fft。。
     
      对数:
          f(x)=ln(1-x).
          f(A(x))=∑Ai(x)/i    (i>=1)    同上原因,A(x)常数项必须为0
          知道了如何求ln(1-A(x)), 那么求ln(B(x)) 套一下就行。
          一样的 强制要求B(x)常数项为1
     
     

    泰勒公式应用

    已经知道了一个函数 G(z),求一个多项式 F(z) (%z^n下),满足方程

    现在假设已经求出了

    则可用牛顿迭代法推出

    再把这个应用到别的多项式问题,用途就很广了。

    以下举例 , 可以用这个通式推得的 " 求exp[A(x)]" :

      定义:A,B,G为模x^n意义下的多项式,

      已知A, 且已用牛顿迭代法在前一层中求出了G(% x^(n/2)下),求B

       exp[A(x)]    复杂度O(n·log(n))

        求B=e^A (%x^n)

        设f(x)=ln(x)-A   , 则f(B)=ln(B)-A=0,
        代入通式可得B=(1+A-ln(G))*G
      ln(G)怎么求呢?:
      ln[A(x)]    复杂度O(n·log(n))

        ln(A)=∫(ln(A))'=∫(A'/A).  (%x^n)

     那么A^k  (k为有理数) 也可以求了, A^k=eln(A)
     
     

    组合数有用的公式:

    上面那个 是 下标从1开始的卡特兰数,

    另一个从0开始的也是一样的,

    就是 fn=f0*fn-1+f1*fn-2+……+fn-1*f0

    这样的fn实际上就是原来的hn+1

    对应的问题  比如说 1~n依次入栈,问出栈顺序有几种。即fn

    (每次把一个元素自成一个轮换,或放在之前的任何一个元素右边) 

     另一种O(m)计算方法: (考虑容斥)

      

    两种斯特林数相关的公式:

    第一类斯特林数: 

    第二类斯特林数:对应贝尔数

    x种颜色为n个点染色,方案数显然是x^n;但是我们也可以用另外一个方法表示,那就是枚举同种颜色的集合是什么(斯特林子集数),然后从x个颜色里选出不同的颜色赋给这些集合(下降幂)。

     用n颗珠子串成若干串项链,其中每串项链上珠子的颜色必须相同,那么我们就可以枚举项链的组成(第一类斯特林数),然后统一给每串项链分配颜色(x^k);如果用另外一种方法表示的话,我们考虑按照编号从小到大加入每个珠子,每个珠子可以选择在x种颜色里面选一种并且自己成为一串新的项链,也可以选择接在之前某个珠子后面并继承一样的颜色,那么我们的操作方案数是 x的n次上升幂

    下降幂:  a^b = a*(a-1)*(a-2)*...*(a-b+1)

    a^b = a! / (a-b)! = C(a,b) * b!

     

    已经有 a^k = ∑x=0~kS(k,x)*a^x

    得出  ∑i=0~n i^k = ∑i=0~n x=0~k S(k,x)*i^x

    又有 ∑i=0~ni^k = k! * ∑i=0~n C(i,k) = k! * C(n+1,k+1) = (n+1)^(k+1) /(k+1)

    伯努利数

    伯努利数满足条件,且有

         

    这是伯努利数的O(n^2)递推。另外 ,伯努利数的 生成函数是 x/(e^x-1)。所以也有nlog(n)的多项式求逆 递推。

     

    利用伯努利数可以求自然数幂和

    k不为0时:

    预处理完伯努利数后,单次询问是O(k)的。

    证明可以看康复计划,找到的唯一简洁易懂的博客啊。

     

  • 相关阅读:
    Docker----mysql数据持久化
    Docker-----容器数据卷
    Docker-----制造自己的镜像
    Docker----常用命令(镜像和容器的常用命令)
    Docker----阿里云镜像加速
    Docker概述
    com.aliyuncs.exceptions.ClientException: InvalidVersion : Specified parameter Version is not valid.
    夜神模拟器的使用踩坑--adb devices无法连接设备
    python利用smtplib模块发送邮件
    appium环境安装说明
  • 原文地址:https://www.cnblogs.com/cyz666/p/6940720.html
Copyright © 2011-2022 走看看