Homework from Zhejiang 和结式到底是什么关系

Homework from Zhejiang

本题希望解决的问题是:给定两个(首一)多项式 f,g,设 n=degf,m=degg。求出 i=1nj=1m(xi+yj),这里 xi,yjf,g 的所有根。

首先需要理解一下为什么这个式子能求出来:若 f,g 的系数都属于数域 K 内,为何答案也属于数域 K 内?这是因为,设 h(x)=j=1m(x+yj),则 [xk]h=(1)mk[xk]g,所以 h 系数也属于 K 内。而 i=1nh(xi) 关于 xi 对称,故可以表为对称多项式的乘积之和,所以答案也会属于 K 内。

有了这个理解再看原问题,其实就容易了,因为当 f(xi)=0 时可以把 h 减去若干倍的 f,答案不变。所以整个题的做法是:

  1. n>m,交换 f,g
  2. 写出 h(x)(就是 g 的某些次系数取反)并把答案化成 i=1nh(xi)
  3. hf 取模(若不首一了就把 h 和答案乘上一个系数)。
  4. 递归,直到 min(n,m)=0

时间复杂度 O(nm)

什么是结式?

在上面一题的很多网上的题解里都提到了“结式”的概念,那什么是结式呢?其实跟本题一点关系都没有。两个多项式 f(x)=i=0naixni,g(x)=i=0mbixmi 结式定义为(不妨设 a0=b0=1

R(f,g)=|a0a1ana0a1ana0a1a2anb0b1bmb0b1bmb0b1b2bm||B|

其中 f 的系数出现 m 行,g 的系数出现 n 行。

结式有什么组合意义呢?容易发现,R(f,g)=0(f(x),g(x))1。如果多项式的系数 ai,bj 不属于欧几里得整环(例如多元多项式环),则这个行列式可以计算,但辗转相除就做不了了。

这个行列式的求值方法可以类比循环矩阵行列式,毕竟前 n 行和后 m 行的确是循环的。同时,系数没有从 xn 循环到 x1,所以给它乘上的范德蒙德矩阵也不需要是 DFT。为了结果尽量简单,好想法是选择 f,gn+m 个根列范德蒙德矩阵,这样得到的结果会是分块对角的。

(n+m)×(n+m) 矩阵 AAij=yjn+mi,其中 y1ymg 的根,ym+1yn+mf 的根(又记为 x1xn),则

BA=[Y00X]

这里 Ym×m 矩阵,Yij=yjmif(yj)Xn×n 矩阵,Xij=xjnig(xj)

|BA|=|Y||X|=1imf(yi)1j<im(yjyi)1ing(xi)1j<in(xjxi)

|A|=1j<im(yjyi)1j<in(xjxi)1jm,1in(yjxi)

再注意到 1in(yjxi)=f(yj),就有

R(f,g)=|B|=1ing(xi)

有重根是不是会出问题?事实上,可以把上面的 xi,yj 看成不定元,则上面都是对多元多项式在操作,一定有消去律,所以有重根上面的推导也成立。

所以对于两个首一多项式 f,g,我们得到了结论:

R(f,g)=1ing(xi)

不难看出以下性质:

  • R(f,g)=(1)nmR(g,f)
  • R(fg,h)=R(f,h)R(g,h)
  • R(f,gh)=R(f,g)R(f,h)
  • 对于首一多项式 fR(f,g)=R(f,g+hf)

所以结式的计算也可以用多项式欧几里得的做法 O(nm) 算出。这个算法是“结式”这个东西和上题唯一的联系了。

总结

笔者当年看到 Homework from Zhejiang 一题时,被某些题解中提到的“用结式计算”或者“本题用到了结式”劝退了。但其实,本题跟结式除了最终的算法形式上相同,没有别的联系:结式的定义(这个行列式的值)对于做出题目没有任何关系,而结式的计算确实跟本题的算法相同,但讲清这个算法也不需要知道结式是什么,这是一个关于多项式根相关式子的普适性算法。

以一道题目去拓展相关知识的出发点是好的,但如果忽略逻辑关系而掉书袋,例如说出本题用到结式这种话:实际上是用到了结式的计算方法,这种说话方式是否有好处就是值得商榷的了。至少笔者觉得,“拓展”永远应当在“讲清楚题目”之后进行,而在“讲清楚题目”的过程中,还是该尽量避免花里胡哨的高级词汇。

posted @   tianbu  阅读(128)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示