多项式全家桶(持续更新中)

Posted skiceanakacniu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多项式全家桶(持续更新中)相关的知识,希望对你有一定的参考价值。

更多代码请移步一些模板

多项式乘法

FFT/NTT,详见别人的博客。由于有些复杂,作者懒得写了。而且写了也对作者没什么意义。

多项式求逆

对多项式(f(x)) 求多项式 (g(x)) 使得 (f(x)cdot g(x)equiv 1pmod {x^n})

这里的(pmod {x^n}) 的意义其实就是“(x) 的次数最低的 (n) 项”

做法

考虑使用倍增。设 (h(x)cdot f(x)equiv1pmod {x^{lceilfrac{x}{2} ceil}})。那么:

[ecause f(x)cdot g(x)equiv 1pmod {x^{lceilfrac{x}{2} ceil}}\\ herefore f(x)(h(x)-g(x))equiv 0pmod {x^{lceilfrac{x}{2} ceil}} ]

观察 (f(x)(h(x)-g(x))) 的常数项,由于 (f(x)) 的常数项不为 0,所以 (h(x)-g(x)) 的常数项必然为 0(根据 (f(x)(h(x)-g(x)))的后 (n) 项均为 0 可知). 再观察 (f(x)(h(x)-g(x))) 的一次项,一次项是 (f(x)) 的常数项 * (h(x)-g(x)) 的一次项 + (h(x)-g(x)) 的常数项 * (f(x)) 的一次项。所以必然 (h(x)-g(x)) 的一次项也为 0.以此类推,(h(x)-g(x)equiv 0pmod {x^{lceil frac{n}{2} ceil}})

考虑到这是在 (pmod x^{lceil frac{n}{2} ceil}) 意义下的,那么平方就可以转化到 (pmod {x^n}) 意义下的。于是有 ((h(x)-g(x))^2equiv 0pmod {x^{ n}})。展开可以得到 (h(x)^2-2h(x)g(x)+g(x)^2equiv 0pmod {x^n})

发现这是一个关于 (g(x)) 的二次式,但是却不能使用求根公式求它,那样还得套上一个多项式开根。。所以考虑利用 (f(x)cdot g(x)equiv 1pmod {x^n}) ,将等式两边同时乘以 (f(x)),这样可以将 (g(x)) 降次得到 (g(x)) 的最终表达式 (g(x)=2h(x)-f(x)h(x)^2)

推这个的过程中用到了很多多项式变换的小技巧...

以上是关于多项式全家桶(持续更新中)的主要内容,如果未能解决你的问题,请参考以下文章

多项式全家桶

IntelliJ IDEA 2020 最新 IDEA 激活码,IDEA 注册码,持续更新

spring微服务全家桶基础入门学习指南

spring微服务全家桶基础入门学习指南

spring微服务全家桶基础入门学习指南

2020 IntelliJ IDEA 激活码,IDEA 注册码,持续更新