zoukankan      html  css  js  c++  java
  • 【算法•日更•第二十九期】基础多项式

    ▎前言

      小编相当的菜,这篇博客难度稍高,所以有些可能不会带有证明,博客中更多的是定义。

      我们将要学到的东西:

    • 环和域
    • 多项式
    • 卷积
    • 多项式乘法
    • 多项式点值表示
    • 多项式的根
    • 单位根

    ▎环和域

      先来说什么是域。

      简单的说,很多数字他们在一起能保证互相加减乘除这群数字中的数,仍能得到这群数字中的数(运算封闭),那么这些数字称为域。

      当然,域中的数字通常是无限多个的。

      那么环是什么,对比来看,域支持加减乘除运算封闭,而环只支持加和乘运算封闭。

      也就是说域属于环,而域是特殊的环。

      正因为域的特殊,所以域具有更多的性质,所以我们之后研究的多项式均与域相关,所以环在本篇博客中不是很重要。

      常见域与环举例:

      常见域:有理数域Q,实数域R,复数域C都是域。

      常见环:整数集就是环。

      因为整数集中除法是不封闭的,因为整数除以整数说不定会有小数,而小数不属于整数。

    ▎多项式

      设R是一个环,a0,a1,…,an都是R中的元素,且an≠0,规定x0=1,那么我们把:

      

      称为R上n次多项式。

      这个多项式是在环上定义的,但是我们后续使用的多项式,一律是域上的多项式

    ▎卷积

      数字与数字的乘法的结果叫做积。

      而向量乘向量的结果叫做卷积

      那么什么是向量,如果你不想知道就看下一段(对后续内容没有妨碍),向量就是有方向的量,也就是说这种量不仅有数字那样的,也有方向。如平面直角坐标系中的坐标,就是向量(方向就是原点到这个点的方向)。

      当然,向量可以存很多个数,类似于数组,所以之后提到的向量a,b,如果没有特殊说明,可以认为是多项式a和多项式b的系数存储的数组。

      利用我们平时多项式乘多项式的过程,我们可以得出以下结论:

      对于向量a,b,令

      

      那么c就是向量a与b的积(这只是个定义,不需要证明什么的)。

    ▎多项式乘法

      设这里有两个多项式f(x)和g(x)(项数分别是n和m),那么我们易得:

      

      其中c是a与b的卷积。

      显然,直接计算的时间复杂度是O(nm)。

    ▎多项式点值表示

      我们先来思考:多项式的表示方法有几种?

      两种,一种是系数表示法,一种是点值表示法。

      系数表示法:按照一定的顺序(例如按x的次数升序)排列,那么我们只要知道每一项对应的系数,那么我们就可以确定唯一的多项式。

      点值表示法:我们可以取一个x的值并带入,就会得到唯一的f值,就像函数一样,我们需要n+1对点对( xk, f(xk) )就可以确定唯一的多项式f(x)。

      知道了点值表示法后,我们设f(x), g(x) 为次数分别为 n, m 的多项式,那么就有n+m+1个互 不相同的点 x0, x1, . . . , xn+m

      若我们已经知道了f(x), g(x),那么我们就可以以较少的时间复杂度得到f(x) g(x),当然,加法也是这样。

    ▎多项式的根

      设域F属于域K,f(x)是F上的多项式,α是K中的元素,若f(α)=0,那么我们称α为f(x)的一个根。

      因此f(x)的根不一定在F中。

    ▎单位根

      多项式xn−1的根称为n次单位根。

  • 相关阅读:
    js格式化输出json对象
    webpack打包优化
    设置了responseType:Blob之后,如果返回json错误信息,如果获取?
    Webpack打包之后[-webkit-box-orient: vertical]样式丢失
    如果axios请求失败,如何获取后端接口返回的状态码及错误信息
    查看端口被占用情况
    用python编写简单爬虫
    python下载指定页面的所有图片
    Vue路由懒加载原理及实现
    PnpWebpackPlugin解析
  • 原文地址:https://www.cnblogs.com/TFLS-gzr/p/11280417.html
Copyright © 2011-2022 走看看