多项式笔记1

多项式基础

一个以\(x\)为变量的多项式定义在一个代数域\(F\)上,可以写作:

\[A(x) = \sum_{i = 0} ^ n a_i x^i \]

其中\(a_i \in F\)

对于一个多项式\(f(x)\),其最高次项的次数为这个多项式的,记作\(\deg{f}\)

多项式加法

有两个多项式\(A(x)和B(x)\),且\(\deg{A} = n,\deg{B} = m\),那么:

\[C(x) = A(x) + B(x) = \sum_{i = 1} ^ {\max(n,m)} (a_i +b_i) x ^ i \]

减法同理。

多项式的加减法可以在\(O(n)\)的时间复杂度内求出。

多项式乘法

有两个多项式\(A(x)\)\(B(x)\),且\(\deg{A} = \deg{B} = n\)

\[C(x) = A(x)B(x) = \sum_{i = 0} ^ {n - 1} \sum_{j = 0} ^ {n - 1} a_i b_j x^{i + j} = \sum_{i = 0} ^ {2n - 2} c_i x ^ i \]

卷积

\(a,b\)是两个数列,那个两个数列的卷积\(c\)定义为

\[c_k = \sum_{i + j = k} a_i b_j \Leftrightarrow c_k = \sum_{i = 0} ^ k a_i b _{k - i} \]

多项式的表示

系数表示法

对于一个多项式\(A(x),\deg{A} = n\),其系数组成了一个向量\(a = (a_0,a_1,a_2,a_3, \cdots a_{n - 1})\)

点值表示法

对于一个多项式\(A(x), \deg{A} = n\),通过选取任意\(x_i\),形成点的集合:

\[\{(x_0,A(x_0)),(x_1,A(x_1)),(x_2,A(x_2)),(x_3,A(x_3)), \cdots (x_{n - 1},A(x_{n - 1}))\} \]

转换:

系数转点值:随机选取\(n\)个互不相同的\(x_0,x_1,x_2,x_3,\cdots , x_{n - 1}\),并进行计算\(A(x_0),A(x_1),A(x_2),A(x_3), \cdots ,A(x_{n - 1})\),通过霍纳法则,计算\(A(x_i)\)的时间为\(O(n)\),所以整个算法为\(O(n^2)\)(后面似乎有更快的算法)

点值转系数:咕了,睡个觉再写。

posted @ 2020-10-03 10:03  luyiming123  阅读(255)  评论(4编辑  收藏  举报