ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

更快的多项式多点求值?

2020-05-31 20:05:26  阅读:330  来源: 互联网

标签:&... 卷积 多项式 矩阵 多点 求值 写成


一个奇妙的科技

定义卷积矩阵\(M=\)

\[\begin{matrix} a_0&0&0&...\\ a_1&a_0&0&...\\ a_2&a_1&a_0&...\\ ...&...&...&...\\ \end{matrix}\]

显然,我们把多项式系数\(a_0,a_1...\)拿下来放到这个方阵中,另一个多项式写成列向量的形式,用此矩阵乘向量即是对另一个多项式模\(x^n\)意义下的多项式乘法

幂和矩阵:\(A=\)

\[\begin{matrix} 1&1&1&...\\ x_0&x_1&x_2&...\\ x_0^2&x_1^2&x_2^2&...\\ ...&...&...&...\\ \end{matrix}\]

多点求值矩阵\(B=A^T\)

幂和可以分治FFT,通分即可

我们把分治FFT的过程拆开来看,我们令\(C_i\)为分治过程中\(i\)节点(看成线段树的结构)中所有多项式的乘积(即\(\prod_{i=l}^r(x-a_i)\))(写成方阵的形式)

幂和矩阵按分治FFT拆开:

\[M_i=M_{2i}C_{2i+1}+M_{2i+1}C_{2i} \]

\(M_i\)表示我们幂和通分后只考虑\(l\sim r\)的\(a_j\)时的分子的多项式(写成方阵的形式),叶节点的\(M_i\)就是常数多项式\(F(x)=1\)对应方阵

\(A=QM_1\),Q是逆元多项式写成的卷积矩阵

我们把幂和的n个变量写成列向量x的形式

\(Ax\)则是幂和的答案

然后一步神仙操作,我们发现幂和多项式的转置就是多点求值多项式,于是\(A^Tx\)是我们要的

我们有\((AB)^T=B^TA^T\)

直接整个转置即可(把分治FFT的过程全反过来)

这时我们把矩阵展开,重新写成多项式,卷积多项式矩阵的转置乘向量写成卷积形式就是差卷积

只要求一次逆即可

复杂度依然\(O(nlog^2n)\),可以5e5多点求值~~~

标签:&...,卷积,多项式,矩阵,多点,求值,写成
来源: https://www.cnblogs.com/invisible-eyes/p/13021072.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有