首页 > 其他分享 >生成函数

生成函数

时间:2023-07-06 22:01:01浏览次数:49  
标签:... 函数 多项式 复杂度 生成 nlogn

看了网上一些博文,总觉得写得很乱。最近刚好学习了相关内容,决定亲自动手写一篇。

前置知识

多项式

表达式:

    A(x)=\sum_{i=1}^{n} a_{i}x_{i}

 

以下内容仅需了解:卷积(多项式乘法),多项式求逆,多项式ln,多项式exp,牛顿迭代...

(当然,这是不可能的)

  • 分治+NTT

比较厉害的一个技巧。

  • 给定 n 个一次多项式 a+ bix,求 \prod_{i=1}^{n}(a_{i}+b_{i}x)
  • n<=105

 

暴力卷积,时间复杂度 > O(n2)的......

原因就在于卷着卷着次数会不断变大。

想象一下,我们平时做多个数的乘法,没有人会去顺序一个一个乘吧......

那可以用类似分治的办法,对于每个区间将左右合并起来。

时间复杂度:T(n)=2T(n/2)+O(nlogn)=O(nlog2n)

具体的实现可以用 vector 存多项式,空间复杂度是 O(nlogn)的。


 

类似的,还可以拓展出分式求和:

给定 n 个一次多项式 ai+bix,求  

如果直接求逆是 O(n2logn)的,

同上,对于每个区间维护分子和分母,最后再求逆算答案。

时间复杂度 O(nlog2n),空间复杂度 O(nlogn)。

 

Taylor 展开   

          

 其实这个不是重点。

然后有个背下来经典的东西:

              

              

 可以直接泰勒展开,不过也可用别的方法推:

                                               


 

广义二项式定理

我们都知道喜闻乐见的二项式定理:

                                             

 但有时候,我们想让这个 n 变成负数甚至小数咋办?

设  

我们有  

解释一下求导:

                                       

                                 

                           

                                                 ...

                                 

 带入,得:

                               

 

 啊哈,于是我们还能定义拓展的组合数    

 

普通型生成函数(OGF)

定义:已知数列{an},构造形式幂级数

        G(x)=a0+a1x+a2x2+...+anxn+...

称G(x)为序列{an}的生成函数

 

标签:...,函数,多项式,复杂度,生成,nlogn
From: https://www.cnblogs.com/buleeyes/p/17533453.html

相关文章

  • 积性函数
     积性函数的定义:如果算数函数f对于任意两个素数p,q均有f(pq)=f(p)f(q),那么称算数函数f为积性函数在狄利克雷卷积中较常见的几种函数:1.单位函数  id(n)=n2.幂函数  Ik(n)=nk3.元函数  ε(n)=(n==1?1:0)4.因数和函数  σ(n)=sum(d)(n/d)5.约数个数  d(n)=sum(1)(n......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
        在培养农村高中生利用二次函数模型构建来对数学问题进行分析及求解意识的基础上,为了进一步锻炼学生的模型建构能力,帮助他们可以突破实际问题求解中的具体含义及意义,快速找到求解实际问题中的关键突破口,以及二次函数模型建构的视角与思维,这时候还要在数学教学中有计划......
  • python pydoc模块生成html网页版内容
    pydoc是一个能生成网页版的模块,内置模块命令:python-mpydoc-p1234-m加载模块-p网页访问端口命令行:b打开浏览器q退出效果:Windows环境下:python-mpydoc-watexit//在当前目录创建atexit.htmlpython-mpydoc-p5000//启动一个Web服务器监听h......
  • vba 二维码生成
    PrivateDeclarePtrSafeFunctionOpenProcessLib"kernel32"(ByValdwDesiredAccessAsLong,ByValbInheritHandleAsLong,ByValdwProcessIdAsLong)AsLongPrivateDeclarePtrSafeFunctionWaitForSingleObjectLib"kernel32"(ByValhHa......
  • ES6 的 新特性 3 箭头函数
    箭头函数的作用:1.比function这种写法更加简洁;2.可以解决thsi指向的问题,因为它不会创建自己的this,而是继承上一级作用域的this。使用场景:1.当函数内部不需要用到this的时候,都可以用箭头函数代替function;2.需要this,但是需要的是上一级作用域的this。箭头函数的几种写法:......
  • 时间处理函数
    /***个位数,加0前缀*@param{*}number*@returns*/importdayjsfrom'dayjs';exportnamespacetime{exportfunctionaddZeroPrefix(number){returnnumber<10?`0${number}`:number;}//functionaddZeroPrefix(n){......
  • 这样看C函数才对
    什么是函数?从定义来看,函数就是一段可以重复使用的代码块,比如下面这样voidhanshu(){inta=0;intb=3;}这时候就应该有人要跳出来了,这是什么**!确实,作为一个强烈反对屎山代码存在的编程者来说,一个好的函数应该是一个有着合理命名,并且功能紧凑的功能块,而不仅只是......
  • 使用Mkdocs生成项目文档
    MkDocs是一个基于Python的静态站点生成器,它可以将Markdown格式的文档转换为漂亮的静态网站。MkDocs提供了一种简单而灵活的方式来创建文档,并支持多种主题和插件。下面是一个简单的示例代码,演示如何使用MkDocs创建一个文档站点:安装MkDocs可以使用pip命令安装MkDocs:pipinstall......
  • Mish激活函数
    前言人们对激活函数都在不断探究,而现在广泛应用的激活函数通常是relu,tanh这两种但是relu在负值的时候直接截断梯度下降的不够平滑因而有团队提出一种新的激活函数来进行优化Mish激活函数Mish激活函数的表达式为 Mish=x*tanh(ln(1+e^x))使用matplotlib画图可得从......
  • css动态生成多个class样式
    在纯CSS中,无法动态生成多个类样式。CSS是一种静态样式表语言,它主要用于描述网页上元素的外观和布局,而不能在运行时动态生成类样式。然而,你可以通过使用CSS预处理器(如Sass、Less等)或CSS-in-JS工具(如StyledComponents、Emotion等)来在一定程度上实现动态生成类样式的效果。举例来......