本页面包含多项式常见的初等函数操作。具体而言,本页面包含如下内容:
- 多项式求逆
- 多项式开方
- 多项式除法
- 多项式取模
- 多项式指数函数
- 多项式对数函数
- 多项式三角函数
- 多项式反三角函数
初等函数与非初等函数
多项式求逆
给定多项式 ,求 。
解法
倍增法
首先,易知
假设现在已经求出了 在模 意义下的逆元 。 有:
两边平方可得:
两边同乘 并移项可得:
递归计算即可。
时间复杂度
Newton's Method
参见 Newton's Method.
Graeffe 法
欲求 考虑
只需求出 即可还原出 因为 是偶函数,时间复杂度同上。
代码
多项式求逆
例题
- 有标号简单无向连通图计数:「POJ 1737」Connected Graph
多项式开方
给定多项式 ,求 ,满足:
解法
倍增法
首先讨论 不为 的情况。
易知:
若 没有平方根,则多项式 没有平方根。
可能有多个平方根,选取不同的根会求出不同的 。
假设现在已经求出了 在模 意义下的平方根 ,则有:
倍增计算即可。
时间复杂度
还有一种常数较小的写法就是在倍增维护 的时候同时维护 而不是每次都求逆。
当 时,可能需要使用二次剩余来计算 。
上述方法需要知道 的逆,所以常数项不能为 。
若 ,则将 分解成 ,其中 。
-
若 是奇数,则 没有平方根。
-
若 是偶数,则求出 的平方根 ,然后得到 。
洛谷模板题 P5205【模板】多项式开根 参考代码
Newton's Method
参见 Newton's Method.
例题
多项式除法 & 取模
给定多项式 ,求 除 的商 和余数 。
解法
发现若能消除 的影响则可直接 多项式求逆 解决。
考虑构造变换
观察可知其实质为反转 的系数。
设 。
将 中的 替换成 并将其两边都乘上 ,得到:
注意到上式中 的系数为 ,则将其放到模 意义下即可消除 带来的影响。
又因 的次数为 ,故 不会受到影响。
则:
使用多项式求逆即可求出 ,将其反代即可得到 。
时间复杂度 。
多项式对数函数 & 指数函数
给定多项式 ,求模 意义下的 与 。
解法
普通方法
首先,对于多项式 ,若 存在,则由其 定义,其必须满足:
对 求导再积分,可得:
多项式的求导,积分时间复杂度为 ,求逆时间复杂度为 ,故多项式求 时间复杂度 。
Newton's Method
使用 Newton's Method 即可在 的时间复杂度内解决多项式 。
代码
多项式 ln/exp
例题
-
计算
普通做法为多项式快速幂,时间复杂度 。
当 时,有:
当 时,设 的最低次项为 ,则:
时间复杂度 。
多项式三角函数
给定多项式 ,求模 意义下的 与 。
解法
首先由 Euler's formula 可以得到 三角函数的另一个表达式:
那么代入 就有:
直接按上述表达式编写程序即可得到模 意义下的 与 。再由 可求得 。
代码
多项式三角函数
多项式反三角函数
给定多项式 ,求模 意义下的 与 。
解法
仿照求多项式 的方法,对反三角函数求导再积分可得:
那么代入 就有:
直接按式子求就可以了。
代码
多项式反三角函数