【算法•日更•第二十九期】基础多项式

▎前言

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

  我们将要学到的东西:

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

▎环和域

  先来说什么是域。

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

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

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

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

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

  常见域与环举例:

  常见域:有理数域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次单位根。

posted @ 2019-08-01 17:36  c1714-gzr  阅读(307)  评论(0编辑  收藏  举报