小截断多元多项式行列式求算

对于域 A \mathbb A A 上的 n n n 阶二元多项式矩阵 A ( x , y ) \mathbf A(x, y) A(x,y),其中 x x x 的次数都小于 a a a y y y 的次数都小于 b b b。我们想要求 det ⁡ A   m o d   x a   m o d   y b \det \mathbf A \bmod x^a \bmod y^b detAmodxamodyb

其中主要问题在于消元的过程中,可能出现常数项为 0 0 0 的情况,如果是一元多项式我们还可以用低次消去高次的方法,但多元多项式就显得要复杂了。

因此我们考虑构造占位多项式 x i y j → x i y j t i + j x^iy^j \rightarrow x^iy^jt^{i+j} xiyjxiyjti+j,在这样的情况下我们做插值,问题就变为了 a b ab ab a + b a+b a+b 次一元多项式矩阵的行列式问题,因此我们通过低次消去高次的方法就可以完成消元。朴素实现是 Θ ( n 3 ( a + b ) 2 a b ) \Theta(n^3(a+b)^2ab) Θ(n3(a+b)2ab),如果使用 FFT,那么就变成了 Θ ( n 3 ( a + b ) a b log ⁡ ( a + b ) ) \Theta(n^3(a+b)ab\log (a+b)) Θ(n3(a+b)ablog(a+b))

这个方法也可以用于更多元的情况,其实如果上来就让你解决子集卷积的形式,可能反而容易想到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值